diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..b3cd726 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,10 @@ +Tim Niemueller +Dan Williams +David Zeuthen +Huzaifa S. Sidhpurwala +Federico Mena Quintero +Dan Winship +Thomas Haller +Lubomir Rintel +Jiří Klimeš +Dan Williams diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..1b50c28 --- /dev/null +++ b/COPYING @@ -0,0 +1,347 @@ +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. + + + 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 Library 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 Library General +Public License instead of this License. + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..06c4ba9 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,751 @@ +2009-03-23 Dan Williams + + * properties/nm-openvpn-dialog.glade + properties/auth-helpers.c + - Add a 'remote ip' entry to static-key mode + +2009-03-23 Dan Williams + + Patch from Ove Everlid + + * src/nm-openvpn-service-openvpn-helper.c + - (main): allow 'ifconfig_netmask' for TUN mode too + +2009-03-18 Dan Williams + + * properties/auth-helpers.c + - (auth_widget_update_connection): actually save local IP address + for static key connections + +2009-03-18 Dan Williams + + * properties/auth-helpers.c + - (populate_hmacauth_combo): fix # of columns in the list store, + making HMAC Auth actually save itself when hitting Apply + +2009-02-13 Dan Williams + + * nm-openvpn-service.conf + - Clean up dbus permissions; retain deny for compat with older dbus + +2009-02-12 Dan Williams + + Patch from Robert Vogelgesang + + * properties/auth-helpers.c + properties/import-export.c + properties/nm-openvpn-dialog.glade + src/nm-openvpn-service.c + src/nm-openvpn-service.h + - Handle HMAC authentication (--auth) + +2009-01-28 Dan Williams + + * src/nm-openvpn-service-openvpn-helper.c + - (main): handle subnets correctly; TAP devices get their netmask + from 'ifconfig_netmask', while TUN devices always use + /32 becuase they are point-to-point + +2009-01-28 Christoph Höger + + * src/nm-openvpn-service.c + - (real_connect, real_need_secrets): don't segfault if the + connection type is invalid + +2008-12-13 Przemysław Grzegorczyk + + * src/nm-openvpn-service.h: + * properties/auth-helpers.h: + * auth-dialog/gnome-two-password-dialog.c: + * auth-dialog/gnome-two-password-dialog.h: Cleared up gtk and glib includes + to use only toplevel headers. Bug #564376. + +2008-12-11 Dan Williams + + * Split into separate repository + +2008-10-28 Tambet Ingo + + Patch from Bin Li . + + * properties/import-export.c (handle_path_item): Search for certificates + from the directory where the configuration file is from. + +2008-10-26 Dan Williams + + * properties/auth-helpers.c + properties/import-export.c + properties/nm-openvpn.c + - Update for setting accessor changes + +2008-10-17 Dan Williams + + * properties/auth-helpers.c + - (advanced_dialog_new): The "Certificates (TLS)" tab should also be + present for NM_OPENVPN_CONTYPE_PASSWORD + +2008-10-17 Dan Williams + + * properties/auth-helpers.c + - (tls_default_filter, tls_file_chooser_filter_new): accept ".cer" + extension too + +2008-10-11 Dan Williams + + * src/nm-openvpn-service-openvpn-helper.c + - (main): handle route_vpn_gateway (requires NM svn r4169) (bgo #549196) + +2008-09-30 Dan Williams + + * properties/nm-openvpn-dialog.glade + - Fix the User and CA certificate entries in Password TLS mode, they + were swapped with their labels (rh #464765) + - Move private key password entries below private key chooser + - Rename "Certificate Password" to "Private key password" since that's + what they actually are + + * properties/auth-helpers.c + - (fill_password): s/cert_password/priv_key_password/s + - (fill_vpn_passwords): fix up for corrected widget names; fix mis-filling + of pw_tls secret widgets where passwords were reversed + - (auth_widget_save_secrets): fix up for corrected widget names + + * src/nm-openvpn-service.c + - s/certpass/priv_key_pass/s becuase that's what it is + +2008-09-29 Dan Williams + + Patch from Robert Buchholz + + * src/nm-openvpn-service.c + - (openvpn_watch_cb): don't access socket_channel if it doesn't exist + because openvpn exited before the management socket could be set up + +2008-09-24 Dan Williams + + * common-gnome/* + auth-dialog/Makefile.am + properties/Makefile.am + - Add the keyring helpers that Tambet forgot in the last commit :) + +2008-09-24 Tambet Ingo + + * properties/nm-openvpn-dialog.glade: Add "show passwords" checkbox. + + * properties/nm-openvpn.c (auth_combo_changed_cb): Change the + sensitivity of "show passwords" checkbox depending on whether the + active page has any password entries. + + * properties/auth-helpers.c (fill_password): Add a signal handler for + "show passwords" checkbox to change the password entry's visibility. + +2008-09-24 Tambet Ingo + + * Implement required "save_secrets" and "delete_connection" methods of the + VPN plugin UI interface. + Add the password widgets to the properties UI so that the passwords can be + edited/deleted from the UI. Reorganize the code a bit to avoid duplicate + code (using VPNC plugin as a template). + +2008-09-10 Dan Williams + + * src/nm-openvpn-service.c + - Clean up management socket and connect timer when the plugin stops; + becuase of this openvpn's output needs to be processed from the + child watch callback otherwise it gets lost when the management + socket is cleaned up during the state change to STOPPED. + - Fix parsing of private key auth failure + +2008-09-05 Dan Williams + + * src/nm-openvpn-service.c + - (nm_openvpn_start_openvpn_binary): send --script-security=2 to allow + the plugin's scripts to be run. Requires OpenVPN 2.1-rc9 or later, + distros with older versions should patch this out. + +2008-09-04 Dan Williams + + * src/nm-openvpn-service.c + - (nm_openvpn_start_openvpn_binary, real_connect, real_need_secrets): + handle split VPN secrets + +2008-08-28 Dan Williams + + * auth-dialog/main.c + - (get_secrets): don't gtk_widget_show_all() because that exposes + widgets that were supposed to be hidden + +2008-08-26 Dan Williams + + * auth-dialog/main.c + - Convert to connection UUIDs (requires NM svn 4013 or later) + - General cleanups + - Store secrets in the keyring the same way the pptp and vpnc plugins do + +2008-08-22 Dan Williams + + * src/nm-openvpn-service-openvpn-helper.c + - (main): grab tunnel MTU and push that through to NM + +2008-08-18 Claude Paroz + + * properties/nm-openvpn-dialog.glade: Removed translatable property on non + user-visible strings and stock labels. + +2008-08-14 Tambet Ingo + + * src/nm-openvpn-service.c (nm_openvpn_socket_data_cb): Detect private key + verification errors too. + + * auth-dialog/main.c (pem_is_encrypted): GIOChannel isn't a GObject, use the + correct unreferencing function for it. + +2008-08-12 Dan Williams + + * properties/auth-helpers.c + properties/nm-openvpn-dialog.glade + - Handle shared -> static change + - Hook up the Static Key "Local IP Address" entry + + * properties/import-export.c + - Handle shared -> static change + + * src/nm-openvpn-service.c + src/nm-openvpn-service.h + - (nm_openvpn_start_openvpn_binary): always dup strings when adding to + the argument array so that freeing the array later actually works + - (validate_one_property): validate addresses too + - (nm_openvpn_properties_validate): fix determination of error/success + - (real_connect): fix stray ; causing all connection attempts to fail + +2008-08-11 Dan Williams + + Update to match NM svn3924 vpn setting changes; verify options better; + return more informative errors on VPN launch failures; change some config + options (tap-dev, proto-tcp, connection-type) to better reflect their + usage. + +2008-08-08 Dan Williams + + * src/nm-openvpn-service.c + - (nm_openvpn_socket_data_cb): handle spaces in passwords and usernames + (bgo #482139) + +2008-08-06 Dan Williams + + * src/nm-openvpn-service-openvpn-helper.c + - (get_routes): handle route metrics + +2008-07-28 Dan Williams + + * properties/auth-helpers.c + - (populate_cipher_combo): don't depend on shell and utils which may not + always be there + +2008-07-27 Dan Williams + + Patch from Michael Biebl + + * Move service to $LIBEXECDIR, remove unneeded compilation flags, move + properties plugin to $LIBDIR/NetworkManager + +2008-07-19 Dan Williams + + * properties/nm-openvpn.c + - (advanced_dialog_response_cb): only update if OK was pressed + +2008-07-18 Dan Williams + + * src/nm-openvpn-service.c + - (nm_openvpn_start_openvpn_binary): only add tls-auth direction if + it's non-empty (Nathaniel McCallum) + +2008-07-17 Tambet Ingo + + * properties/nm-openvpn.c (openvpn_plugin_ui_class_init): Don't add empty + private data to the class, it produces a runtime warning. + +2008-07-07 Dan Williams + + * src/nm-openvpn-service-openvpn-helper.c + - Use IPv4 address prefixes rather than netmasks (requires svn3812) + +2008-07-03 Dan Williams + + * nm-openvpn-service.name.in + Makefile.am + - Remove paths from .name file (requires applet r776 or later) to fix + issues with multilib and magic path substitution in glibc + +2008-07-02 Dan Williams + + * properties/auth-helpers.c + - (tls_default_filter): read more of the certificate/key file to look + for the known certificate or key tags, not just 1024 bytes + +2008-06-30 Dan Williams + + * properties/auth-helpers.c + - (tls_default_filter, tls_file_chooser_filter_new): accept .crt and + .key too + +2008-06-30 Dan Williams + + * properties/import-export.c + properties/import-export.h + properties/Makefile.am + - Implement import of OpenVPN config files + + * properties/nm-openvpn.c + properties/nm-openvpn.h + - Add another error for import + - (import): check file extension; get contents; hand off to importer + +2008-06-26 Dan Williams + + Implement the Advanced... dialog + +2008-06-23 Dan Williams + + * Convert to new NM VPN UI plugin format + + Requires a NetworkManager of at least SVN revision r3761. + +2008-06-06 Dan Williams + + Patch from Tambet Ingo + + * src/nm-openvpn-service-openvpn-helper.c + - (main, get_routes): send routes too + +2008-05-30 Dan Williams + + Patch from Casey Harkins + + * src/nm-openvpn-service.c + - (nm_openvpn_start_openvpn_binary): don't send --ns-cert-type, it's + not really supposed to be used anymore since that option isn't + used any more when creating server certificates + +2008-05-22 Tambet Ingo + + * src/nm-openvpn-service.c (real_disconnect): If sending SIGTERM + succeeds, add a timeout to make sure it gets killed. If it fails, + send SIGKILL immediately. + +2008-05-01 Dan Williams + + * src/nm-vpnc-service.c + - (validate_one_property): allow the 'name' property + +2008-04-27 Dan Williams + + * properties/Makefile.am + - Avoid versioning properties plugin (gnome.org #529836) + +2008-04-10 Dan Williams + + * vpn-daemons/openvpn/auth-dialog/main.c + - Fix up for connection ID; but needs more work to actually read the + keyring key from the right place + +2008-04-10 Tambet Ingo + + * auth-dialog/main.c (main): Add the '-i' argument the applet now sends. + +2008-03-13 Dan Williams + + * nm-openvpn-service.name.in + - Fix for 64 bit compat (gnome.org #522231) + +2008-02-06 Dan Williams + + Patch from Ryan Ayers + + * src/nm-openvpn-service-openvpn-helper.c + - (main): respect server-provided DNS search domain + +2008-01-31 Dan Williams + + Patch from Robert Hughes + + * src/nm-openvpn-service.c + properties/nm-openvpn.c + - Make 'port' an integer, not a uint + +2007-12-13 Tim Niemueller + + * nm-openvpn.desktop.in: Updates to make desktop-file-validate happy + + * properties/nm-openvpn.c: Added NULL pointer checks + +2007-12-11 Dan Williams + + Patches from Casey Harkins + + * src/nm-openvpn-service-openvpn-helper.c + - (main): make ifconfig_remote optional + +2007-12-11 Dan Williams + + Patches from Casey Harkins + + * properties/nm-openvpn.c + - (impl_fill_connection): duplicate hash table keys as required + +2007-12-07 Dan Williams + + Patches from Casey Harkins + + * src/nm-openvpn-service-openvpn-helper.c + - (parse_addr_list): fix off-by-one error + + * src/nm-openvpn-service.c + - (nm_openvpn_start_openvpn_binary): don't let openvpn stomp all over + the routing table since NM manages that + + * auth-dialog/main.c + src/nm-openvpn-service.h + src/nm-openvpn-service.c + - Don't require a certificate password + +2007-12-05 Dan Williams + + Patch from Casey Harkins + + * src/nm-openvpn-service-openvpn-helper.c + src/nm-openvpn-service.c + properties/nm-openvpn.c + auth-dialog/main.c + - Fix up so it mostly works + +2007-11-23 Tim Niemueller + + * configure.in: raise version number to 0.7.0 to reflect the + dependency on the new NM and to separate it from the 0.6 branch. + +2007-11-15 Dan Williams + + * properties/nm-vpnc.c + - Fixup for NMSettingConnection 'name' -> 'id' changes + +2007-11-07 Dan Williams + + * properties/nm-openvpn.c + src/nm-openvpn-service.c + - Fix for new NMSetting API changes + +2007-10-28 Tim Niemueller + + * nm-openvpn.desktop.in: Added NoDisplay=true + +2007-10-26 Dan Williams + + * properties/nm-openvpn.c + - (impl_get_object): use a glade root, and ensure widget is referenced + correctly + +2007-10-08 Tambet Ingo + + * Update everything to work with the 0.7 branch NetworkManager. + +2007-08-15 Tambet Ingo + + * nm-openvpn-service.name.in: Use uppercase macros so that they get replaced + by the Makefile. + +2007-08-14 Dan Williams + + * src/nm-openvpn-service.c + - Handle NM_VPN_STATE_* -> NM_VPN_SERVICE_STATE_* and NMVPNState -> + NMVPNServiceState renames + +2007-07-26 Dan Williams + + Patch from Andreas Hanke + + * configure.in + acinclude.m4 + Makefile.am + - remove broken usage of AS_AC_EXPAND (#413323) + +2007-07-26 Dan Williams + + Patch from Robert Buchholz + + * configure.in + - Find & link against libnm-util too (#454739) + +2007-06-21 Christopher Aillon + + * nm-openvpn-service.name.in: + Make the properties library path multilib friendly (#447577) + +2007-04-02 Dan Williams + + Patch from Christian Persch + * properties/nm-openvpn-dialog.glade + - HIGify (gnome.org #423753) + +2007-04-02 Dan Williams + + Patch from Christian Persch + * src/nm-openvpn-service.c + - (nm_openvpn_dbus_process_helper_ip4_config): build fix (gnome.org #423757) + +2007-03-15 Dan Williams + + Patch from Jon Nettleton + + * properties/nm-openvpn-dialog.glade + properties/nm-openvpn.c + - Move advanced properties into a separate dialog + +2007-02-26 Dan Williams + + Patch from Jon Nettleton + + * properties/nm-openvpn-dialog.glade + properties/nm-openvpn.c + - Reduce size of OpenVPN configuration dialog (Gnome.org #410669) + +2007-02-02 Dan Williams + + * src/nm-openvpn-service.c + - (nm_openvpn_dbus_process_helper_ip4_config): convert to dict-based + IP4Config interface + +2006-12-07 Dan Williams + + Patch from Christian Persch + + * auth-dialog/main.c + - Fix memleak by unrefing the GnomeProgram instance (Gnome.org #383110) + +2006-12-07 Dan Williams + + Patch from Christian Persch + + * auth-dialog/main.c + auth-dialog/gnome-two-password-dialog.c + - HIG-ify (Gnome.org #383109) + +2006-11-24 Dan Williams + + Patch from Helmut Schaa + * src/nm-openvpn-service-openvpn-helper.c + - Redirect output to syslog + +2006-10-30 Tambet Ingo + + * properties/Makefile.am: Add NetworkManager to CFLAGS and LDADD. + + * src/Makefile.am: Ditto. + + * properties/nm-openvpn.c: Remove the leading NetworkManager directory + from NM includes since the NM pkg-config file already adds that. + + * src/nm-openvpn-service-openvpn-helper.c: Ditto. + + * src/nm-openvpn-service.c: Ditto. + +2006-10-04 Tambet Ingo + + * properties/nm-openvpn.c (impl_get_widget, impl_get_properties) + (import_from_file): s/tcp/tcp-client. + +2006-07-28 Christophe Merlet + + * properties/nm-openvpn-dialog.glade.h: fixed typo. + * configure.in (ALL_LINGUAS): Added fr (French). + +2006-06-19 Satoru SATOH + + * configure.in (ALL_LINGUAS): Added ja (Japanese). + +2006-06-17 Marcel Telka + + * configure.in (ALL_LINGUAS): Added sk. + +2006-05-11 Robert Love + + Patch to add OpenVPN TLS and Cipher support, by Groug : + * properties/nm-openvpn-dialog.glade: Add UI checkboxes. + * properties/nm-openvpn.c: New UI. + * src/nm-openvpn-service.c: Support "--tls-auth" and "--cipher" + OpenVPN options. + * src/nm-utils.c: Add nm_find_openvpn(), exported function for finding + the location of the OpenVPN binary. + * src/nm-utils.h: Add prototype. + +2006-05-01 Josep Puigdemont Casamajó + + * configure.in: Added "ca" to ALL_LINGUAS. + +2006-04-17 Robert Love + + * properties/nm-openvpn-dialog.glade: If the dialog won't let the user + type in the file entry GtkEntries, then don't mark them editable. + +2006-04-10 Robert Love + + * properties/nm-openvpn.c: Report error if writing out of exported + configuration fails. The silent treatment might work for me and my + wife, but not for failed I/O. + +2006-03-30 Robert Love + + Patch by Crispin Flowerday : + * src/nm-openvpn-service-helper.c: Fix crash when no PtP IP address is + supplied. + +2006-03-29 Robert Love + + * src/nm-openvpn-service.c: New eigth argument to DBUS VPN method, the + per-route MSS. OpenVPN does not care about the MSS, so we send zero. + +2006-03-02 Raphael Higino + + * configure.in: Added pt_BR to ALL_LINGUAS. + +2006-02-28 Ilkka Tuohela + * configure.in: Added fi to ALL_LINGUAS. + +2006-02-16 Francisco Javier F. Serrador + + * configure.in: Added es to ALL_LINGUAS. + +2006-02-08 Clytie Siddall + + * configure.in: Added vi in ALL_LINGUAS line. + +2006-02-04 Funda Wang + + * configure.in: Added zh_CN to ALL_LINGUAS. + +2006-01-05 Tim Niemueller + + * configure.in: Explicitly set AUX_DIR to . to prevent autoconf from + searching (and finding) install-sh in ../.., which lead to + problems. + +2005-12-12 Robert Love + + * auth-dialog/main.c: one more NULL, this time for the ellipses + +2005-12-11 Tim Niemueller + + * auth-dialog/main.c: + - Added support for encrypted key files in X.509 connections + - restructured code, fixed a memleak + + * src/nm-openvpn-service.c: + - Added support for encrypted key files for X.509 connections + - Added support for port parameter in gconf keys. + + * src/gnome-two-password-dialog.[ch]: + - Added support for setting the primary password label + + * configure.in: + - Bumped version to 0.3.2 + +2005-12-07 Tim Niemueller + + * src/nm-openvpn-service.c: + - Removed unused variable, login banner hack not needed any more + +2005-12-07 Tim Niemueller + + * auth-dialog/main.c: + - Only request one password from Gnome keyring, patch by Crispin + Flowerday + + * properties/nm-openvpn-dialog.glade: + - Added check button to use TCP instead of UDP + + * properties/nm-openvpn.c: + - Protocol can now be set, defaults to UDP, TCP maybe selected with + check box + + * src/nm-openvpn-service.c: + - Support proto flag in config, default to UDP if not set for backward + compatibility + - Set a fake login banner for now until we fixed when NM sets + last_attempt_success (provided by Crispin) + + * configure.in: + - Raised versoin to 0.3.1 + +2005-12-05 Tim Niemueller + + * properties/nm-openvpn-dialog.glade: + - Added X.509 + User/Pass to list of available connection + types + - added checkbox for using TAP device to optional info expander + + * properties/nm-openvpn.c: + - Added support for new X.509 + User/Pass connection type + - Added support for using TAP device, device is now written to + config to new field dev + + * auth-dialog/main.c: + - Password is also needed for new connection type + + * src/nm-openvpn-service-openvpn-helper.c: + - Updated header + + * src/nm-openvpn-service.[ch]: + - Added support for new X.509 + User/Pass connection type + - device is now an explicit parameter, if not set it defaults to + "tun" for compatibility with versions < 0.3.0 + - fixed closing of management socket, thanks for this patch goes + to Crispin Flowerday + - Added syslog flag to OpenVPN arguments + + * configure.in: + - Raised version to 0.3.0 + + * openvpn/intltool-extract.in + openvpn/intltool-merge.in + openvpn/intltool-update.in: + - Versions from intltool 0.34 are back, magically work after new + autogen.sh run!? + +2005-11-30 Tim Niemueller + + * auth-dialog/main.c: Only request one password, + still use GnomeTwoPasswordDialog, gives all the functionality we need. + This should be unified between VPN implementations. Also I had to add + GConf support to see if a password is really needed for the connection + type. The configuraton line should be written to the auth-dialog by NM + and maybe even an impl_needs_passwd_dialog or similar should be added. + Patch will follow when healthy again. + + * properties/nm-openvpn-dialog.glade: Updated GUI, + contains now everything needed to configure all three connection types + + * properties/nm-openvpn.c: Added handling of all + three connection types. + + * src/nm-openvpn-service-openvpn-helper.c: Use + different environment variables which are available for all connection + types, fixed the returned VPN gateway address. This was the remote IP + used in the VPN network, not the remote's real address. This prevented + it from working if VPN gateway was not in the same subnet since routes + were wrong. + + * src/nm-openvpn-service.h + src/nm-openvpn-service.c: Added support for + password and shared secret connection types. Reformatted to Gnu style. + + * configure.in: Raised version to 0.2.0 + + * openvpn/intltool-extract.in + openvpn/intltool-merge.in + openvpn/intltool-update.in: + Version from intltool 0.33, 0.34 won't work at the moment. + +2005-10-29 Tim Niemueller + + * started work based on vpnc work + diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000..7f54d2c --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,4 @@ +Dan Williams +E-mail: dcbw redhat com +Userid: dcbw + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..cd6e310 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,414 @@ +AUTOMAKE_OPTIONS = foreign subdir-objects + +DISTCHECK_CONFIGURE_FLAGS = \ + --enable-more-warnings=yes + +libexec_PROGRAMS = + +noinst_LTLIBRARIES = + +EXTRA_DIST = + +CLEANFILES = + +check_programs = + +noinst_PROGRAMS = + +SUBDIRS = \ + . \ + po + +plugindir = $(libdir)/NetworkManager +plugin_LTLIBRARIES = + +dbusservicedir = $(sysconfdir)/dbus-1/system.d +dbusservice_DATA = nm-openvpn-service.conf + +nmvpnservicedir = $(NM_VPN_SERVICE_DIR) +nmvpnservice_DATA = nm-openvpn-service.name + +uidir = $(datadir)/gnome-vpn-properties/openvpn +ui_DATA = + +############################################################################### + +shared_sources = \ + shared/nm-utils/nm-shared-utils.c \ + shared/utils.c + +############################################################################### + +src_cppflags = \ + -DBINDIR=\"$(bindir)\" \ + -DPREFIX=\""$(prefix)"\" \ + -DSYSCONFDIR=\""$(sysconfdir)"\" \ + -DLIBDIR=\""$(libdir)"\" \ + -DLIBEXECDIR=\""$(libexecdir)"\" \ + -DLOCALSTATEDIR=\""$(localstatedir)"\" \ + -DDATADIR=\"$(datadir)\" \ + -DNM_OPENVPN_LOCALEDIR=\"$(datadir)/locale\" \ + -DG_LOG_DOMAIN=\"nm-openvpn\" \ + -I$(srcdir)/shared \ + $(GLIB_CFLAGS) \ + $(LIBNM_CFLAGS) + +noinst_LTLIBRARIES += src/libnm-utils.la + +src_libnm_utils_la_SOURCES = $(shared_sources) +src_libnm_utils_la_CPPFLAGS = $(src_cppflags) +src_libnm_utils_la_LIBADD = \ + $(GLIB_LIBS) \ + $(LIBNM_LIBS) + +libexec_PROGRAMS += src/nm-openvpn-service + +src_nm_openvpn_service_CPPFLAGS = $(src_cppflags) +src_nm_openvpn_service_LDFLAGS = \ + -Wl,--version-script="$(srcdir)/linker-script-binary.ver" +src_nm_openvpn_service_LDADD = \ + src/libnm-utils.la \ + $(GLIB_LIBS) \ + $(LIBNM_LIBS) +EXTRA_src_nm_openvpn_service_DEPENDENCIES = \ + linker-script-binary.ver + +libexec_PROGRAMS += src/nm-openvpn-service-openvpn-helper + +src_nm_openvpn_service_openvpn_helper_CPPFLAGS = $(src_cppflags) +src_nm_openvpn_service_openvpn_helper_LDFLAGS = \ + -Wl,--version-script="$(srcdir)/linker-script-binary.ver" +src_nm_openvpn_service_openvpn_helper_LDADD = \ + src/libnm-utils.la \ + $(GLIB_LIBS) \ + $(LIBNM_LIBS) +EXTRA_src_nm_openvpn_service_openvpn_helper_DEPENDENCIES = \ + linker-script-binary.ver + +############################################################################### + +properties/resources.h: properties/gresource.xml + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/properties --generate-header --internal + +properties/resources.c: properties/gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/properties --generate-dependencies $(srcdir)/properties/gresource.xml) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(srcdir)/properties --generate-source --internal + +CLEANFILES += \ + properties/resources.c \ + properties/resources.h + +EXTRA_DIST += \ + properties/gresource.xml + +plugin_sources = \ + properties/nm-openvpn-editor-plugin.c \ + properties/nm-openvpn-editor-plugin.h \ + properties/import-export.c \ + properties/import-export.h + +editor_sources = \ + properties/resources.c \ + properties/resources.h \ + properties/nm-openvpn-editor.c \ + properties/nm-openvpn-editor.h \ + properties/auth-helpers.c \ + properties/auth-helpers.h + +properties_cppflags = \ + -DICONDIR=\""$(datadir)/pixmaps"\" \ + -DLOCALEDIR=\"$(datadir)/locale\" \ + -I$(srcdir)/shared \ + $(GLIB_CFLAGS) + +############################################################################### + +noinst_LTLIBRARIES += properties/libnm-vpn-plugin-openvpn-utils.la + +properties_libnm_vpn_plugin_openvpn_utils_la_SOURCES = \ + $(shared_sources) + +properties_libnm_vpn_plugin_openvpn_utils_la_CPPFLAGS = \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_BASE \ + -DNM_PLUGIN_DIR=\"$(NM_PLUGIN_DIR)\" \ + $(properties_cppflags) \ + $(LIBNM_CFLAGS) + +properties_libnm_vpn_plugin_openvpn_utils_la_LIBADD = \ + $(LIBNM_LIBS) \ + $(DL_LIBS) + +noinst_LTLIBRARIES += properties/libnm-vpn-plugin-openvpn-core.la + +properties_libnm_vpn_plugin_openvpn_core_la_SOURCES = \ + shared/nm-utils/nm-vpn-plugin-utils.c \ + shared/nm-utils/nm-vpn-plugin-utils.h \ + shared/nm-utils/nm-vpn-plugin-macros.h \ + $(plugin_sources) + +properties_libnm_vpn_plugin_openvpn_core_la_CPPFLAGS = \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_BASE \ + -DNM_PLUGIN_DIR=\"$(NM_PLUGIN_DIR)\" \ + $(properties_cppflags) \ + $(LIBNM_CFLAGS) + +properties_libnm_vpn_plugin_openvpn_core_la_LIBADD = \ + properties/libnm-vpn-plugin-openvpn-utils.la \ + $(LIBNM_LIBS) \ + $(DL_LIBS) + +plugin_LTLIBRARIES += properties/libnm-vpn-plugin-openvpn.la + +properties_libnm_vpn_plugin_openvpn_la_SOURCES = +properties_libnm_vpn_plugin_openvpn_la_LIBADD = \ + properties/libnm-vpn-plugin-openvpn-core.la +properties_libnm_vpn_plugin_openvpn_la_LDFLAGS = \ + -avoid-version \ + -Wl,--version-script=$(srcdir)/properties/libnm-vpn-plugin-openvpn.ver + +############################################################################### + +if WITH_GNOME +plugin_LTLIBRARIES += properties/libnm-vpn-plugin-openvpn-editor.la +endif + +properties_libnm_vpn_plugin_openvpn_editor_la_SOURCES = \ + $(editor_sources) + +properties_libnm_vpn_plugin_openvpn_editor_la_CPPFLAGS = \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB_EDITOR \ + $(properties_cppflags) \ + $(GTK_CFLAGS) \ + $(LIBNM_CFLAGS) \ + $(LIBNMA_CFLAGS) + +properties_libnm_vpn_plugin_openvpn_editor_la_LIBADD = \ + properties/libnm-vpn-plugin-openvpn-utils.la \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(LIBNM_LIBS) \ + $(LIBNMA_LIBS) + +properties_libnm_vpn_plugin_openvpn_editor_la_LDFLAGS = \ + -avoid-version \ + -Wl,--version-script=$(srcdir)/properties/libnm-vpn-plugin-openvpn-editor.ver + +############################################################################### + +if WITH_LIBNM_GLIB +noinst_LTLIBRARIES += properties/libnm-openvpn-properties-core.la +endif + +properties_libnm_openvpn_properties_core_la_SOURCES = \ + $(shared_sources) \ + $(plugin_sources) \ + $(editor_sources) + +properties_libnm_openvpn_properties_core_la_CPPFLAGS = \ + -DNM_VPN_OLD \ + -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \ + $(properties_cppflags) \ + $(GTK_CFLAGS) \ + $(LIBNM_GLIB_CFLAGS) \ + $(LIBNM_GTK_CFLAGS) + +properties_libnm_openvpn_properties_core_la_LIBADD = \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(LIBNM_GLIB_LIBS) \ + $(LIBNM_GTK_LIBS) + + +if WITH_LIBNM_GLIB +plugin_LTLIBRARIES += properties/libnm-openvpn-properties.la +endif + +properties_libnm_openvpn_properties_la_SOURCES = +properties_libnm_openvpn_properties_la_LIBADD = \ + properties/libnm-openvpn-properties-core.la +properties_libnm_openvpn_properties_la_LDFLAGS = \ + -avoid-version \ + -Wl,--version-script=$(srcdir)/properties/libnm-openvpn-properties.ver + +EXTRA_DIST += \ + properties/libnm-vpn-plugin-openvpn.ver \ + properties/libnm-vpn-plugin-openvpn-editor.ver \ + properties/libnm-openvpn-properties.ver \ + properties/nm-openvpn-dialog.ui + +############################################################################### + +properties_tests_cppflags = \ + -DTEST_SRCDIR="\"$(abs_srcdir)/properties/tests\"" \ + -DTEST_BUILDDIR="\"$(abs_builddir)/properties/tests\"" \ + -I$(srcdir)/shared \ + -I$(srcdir)/properties \ + $(GLIB_CFLAGS) + + +check_programs += properties/tests/test-import-export + +properties_tests_test_import_export_SOURCES = \ + properties/tests/test-import-export.c + +properties_tests_test_import_export_CPPFLAGS = \ + $(properties_tests_cppflags) \ + $(LIBNM_CFLAGS) \ + $(LIBNMA_CFLAGS) + +properties_tests_test_import_export_LDADD = \ + properties/libnm-vpn-plugin-openvpn-core.la \ + $(GLIB_LIBS) \ + $(LIBNM_LIBS) \ + $(LIBNMA_LIBS) + + +if WITH_LIBNM_GLIB +check_programs += properties/tests/test-import-export-glib +endif + +properties_tests_test_import_export_glib_SOURCES = \ + properties/tests/test-import-export.c + +properties_tests_test_import_export_glib_CPPFLAGS = \ + -DNM_VPN_OLD \ + $(properties_tests_cppflags) \ + $(GTK_CFLAGS) \ + $(LIBNM_GLIB_CFLAGS) \ + $(LIBNM_GTK_CFLAGS) + +properties_tests_test_import_export_glib_LDADD = \ + properties/libnm-openvpn-properties-core.la \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(LIBNM_GLIB_LIBS) \ + $(LIBNM_GTK_LIBS) + + +EXTRA_DIST += \ + properties/tests/conf/iso885915.ovpn \ + properties/tests/conf/mtu-disc.ovpn \ + properties/tests/conf/password.conf \ + properties/tests/conf/pkcs12.ovpn \ + properties/tests/conf/port.ovpn \ + properties/tests/conf/rport.ovpn \ + properties/tests/conf/static.key \ + properties/tests/conf/static.ovpn \ + properties/tests/conf/static2.ovpn \ + properties/tests/conf/tls.ovpn \ + properties/tests/conf/tls2.ovpn \ + properties/tests/conf/tun-opts.conf \ + properties/tests/conf/proxy-http.ovpn \ + properties/tests/conf/httpauthfile \ + properties/tests/conf/proxy-socks.ovpn \ + properties/tests/conf/proxy-http-with-auth.ovpn \ + properties/tests/conf/keysize.ovpn \ + properties/tests/conf/device.ovpn \ + properties/tests/conf/device-notype.ovpn \ + properties/tests/conf/keepalive.ovpn \ + properties/tests/conf/ping-with-exit.ovpn \ + properties/tests/conf/ping-with-restart.ovpn \ + properties/tests/conf/route.ovpn \ + properties/tests/conf/tls-inline.ovpn \ + properties/tests/conf/tls-inline-ca.pem \ + properties/tests/conf/tls-inline-cert.pem \ + properties/tests/conf/tls-inline-key.pem \ + properties/tests/conf/tls-inline-ta.pem + +############################################################################### + +if WITH_GNOME +libexec_PROGRAMS += auth-dialog/nm-openvpn-auth-dialog +endif + +auth_dialog_nm_openvpn_auth_dialog_SOURCES = \ + $(shared_sources) \ + auth-dialog/main.c +auth_dialog_nm_openvpn_auth_dialog_CPPFLAGS = \ + -DICONDIR=\""$(datadir)/pixmaps"\" \ + -DBINDIR=\""$(bindir)"\" \ + -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ + -I$(srcdir)/shared \ + $(GLIB_CFLAGS) \ + $(GTK_CFLAGS) \ + $(LIBNM_CFLAGS) \ + $(LIBNMA_CFLAGS) \ + $(LIBSECRET_CFLAGS) +auth_dialog_nm_openvpn_auth_dialog_LDFLAGS = \ + -Wl,--version-script="$(srcdir)/linker-script-binary.ver" +auth_dialog_nm_openvpn_auth_dialog_LDADD = \ + $(GLIB_LIBS) \ + $(GTK_LIBS) \ + $(LIBNM_LIBS) \ + $(LIBNMA_LIBS) \ + $(LIBSECRET_LIBS) +EXTRA_auth_dialog_nm_openvpn_auth_dialog_DEPENDENCIES = \ + linker-script-binary.ver + +############################################################################### + +if WITH_LIBNM_GLIB +# Install a file with full path to plugins for an old gnome-shell +# https://bugzilla.gnome.org/show_bug.cgi?id=693590 +install-data-hook: + mkdir -p $(DESTDIR)$(sysconfdir)/NetworkManager/VPN + sed -e "1s|^|# This file is obsoleted by a file in $(NM_VPN_SERVICE_DIR)\n\n|" \ + -e 's|[@]LIBEXECDIR[@]|$(libexecdir)|g' \ + -e 's|[@]PLUGINDIR[@]|@NM_PLUGIN_DIR@|g' \ + <$(srcdir)/nm-openvpn-service.name.in \ + >$(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-openvpn-service.name + +uninstall-hook: + rm -f $(DESTDIR)$(sysconfdir)/NetworkManager/VPN/nm-openvpn-service.name +endif + +appdatadir = $(datadir)/appdata +appdata_files = $(appdata_in_files:.xml.in=.xml) +if WITH_GNOME +appdata_DATA = $(appdata_files) +endif +appdata_in_files = appdata/network-manager-openvpn.metainfo.xml.in +@INTLTOOL_XML_RULE@ + +nm-openvpn-service.name: $(srcdir)/nm-openvpn-service.name.in + $(AM_V_GEN) sed -e 's|[@]LIBEXECDIR[@]|$(libexecdir)|g' \ + -e 's|[@]PLUGINDIR[@]/|@NM_PLUGIN_DIR_NAME_FILE@|g' \ + $^ >$@ + +# we always build the tests during regular build. +noinst_PROGRAMS += $(check_programs) + +TESTS = $(check_programs) + +EXTRA_DIST += \ + linker-script-binary.ver \ + nm-openvpn-service.name.in \ + $(dbusservice_DATA) \ + $(appdata_in_files) \ + $(appdata_files) \ + intltool-extract.in \ + intltool-merge.in \ + intltool-update.in \ + \ + shared/README \ + shared/nm-utils/gsystem-local-alloc.h \ + shared/nm-utils/nm-glib.h \ + shared/nm-utils/nm-macros-internal.h \ + shared/nm-utils/nm-shared-utils.c \ + shared/nm-utils/nm-shared-utils.h \ + shared/nm-utils/nm-test-utils.h \ + shared/nm-default.h \ + shared/nm-service-defines.h \ + shared/utils.c \ + shared/utils.h \ + $(NULL) + +CLEANFILES += \ + $(nmvpnservice_DATA) \ + $(appdata_files) + +DISTCLEANFILES = \ + intltool-extract \ + intltool-merge \ + intltool-update + +ACLOCAL_AMFLAGS = -I m4 diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..256c120 --- /dev/null +++ b/NEWS @@ -0,0 +1,252 @@ +======================================================= +NetworkManager-openvpn-1.8.0 +Overview of changes since NetworkManager-openvpn-1.2.10 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Use gresources for ui files. +* Use NMACertChooser for PKCS#11 support. +* Support --ifconfig option not only for static key connections (bgo#774727). +* Fix import for key-direction to make it independent of the order (bgo#778154). +* Extend support for address family specifier for remote protocol (bgo#731620). +* Updated Brazilian Portuguese, Catalan, Czech, Hungarian, Indonesian, Italian, + Lithuanian, Polish, Serbian, Spanish, Swedish translations. + +======================================================= +NetworkManager-openvpn-1.2.10 +Overview of changes since NetworkManager-openvpn-1.2.8 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Add support for "tls-crypt" and "mtu-disc" options +* Add support for dynamic challenge-response protocol +* Allow choosing Adaptive or None LZO compression methods in the connection + properties dialog +* Avoid passing the obsolete "tls-remote" option to OpenVPN versions that no + longer support it and discourage its use in the properties dialog +* Updated the build system to use non-recursive make +* Many bug fixes +* Updated Brazilian, Danish, Hungarian, Indonesian, Lithuanian, Polish, Serbian + and Swedish translations + +======================================================= +NetworkManager-openvpn-1.2.8 +Overview of changes since NetworkManager-openvpn-1.2.6 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Treat cipher and hmac options case insensitive in the properties GUI +* Support numeric argument to mssfix option +* Fixes to translatable strings and use Unicode +* Updated Czech, German, Hungarian, Polish, Spanish translations + +======================================================= +NetworkManager-openvpn-1.2.6 +Overview of changes since NetworkManager-openvpn-1.2.4 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Restore previous behavior for handling empty "comp-lzo" (bgo#769177) +* Support verify-x509-name (bgo#770922) +* Support max-routes (bgo#720097) +* Updated Brazilian Portuguese, Czech, German, Hungarian, Lithuanian, + Polish, Serbian, Serbian Latin translations +* Fix invalid free when parsing remote option +* Various cleanups + +======================================================= +NetworkManager-openvpn-1.2.4 +Overview of changes since NetworkManager-openvpn-1.2.2 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Prefer building against stable libsecret API +* Split libnm-vpn-plugin-openvpn.so into a GTK-free core plugin + usable by nmcli and a UI plugin for nm-applet and gnome components. +* Support NM_VPN_LOG_LEVEL environment variable to control debug + logging from NetworkManager. +* Updated Catalan, German, Spanish, Indonesian, Polish, Brazilian Portuguese, + Swedish, Serbian, Serbian Latin translations +* Fix handling comp-lzo option +* Add support for tls-cipher option +* Add support for IPv6 DNS servers +* Fix handling quotes and comments when parsing ovpn files +* Hide internal ABI from properties libraries +* Preserve IP routing configuration on restart +* Various cleanups + + +======================================================= +NetworkManager-openvpn-1.2.2 +Overview of changes since NetworkManager-openvpn-1.2 +======================================================= + +This is a new stable release of NetworkManager-openvpn. Notable changes include: + +* Fixed validation of proxy port +* Use a proper name for the AppStream metadata +* Updated Hungarian translation + + +======================================================= +NetworkManager-openvpn-1.2 +Overview of changes since network-manager-openvpn-1.0 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Ported to libnm, libnma and GDBus +* Support multiple concurrent OpenVPN connections +* Various import/export fixes +* Add support for --ping option to backend +* Add support for --ns-cert-type option +* Translation updates +* Add support for importing inline keys, secrets and PKCS12 certificates +* Treate the file names as opaque strings as opposed to UTF-8 +* Allow disabling the internal fragmentation in properties dialog + +The following features were backported to 1.0.x releases from 1.0.0 to 1.0.8 +are also present in NetworkManager-openvpn-1.2: + +* Fix operations in IPv6-only configurations +* Add support for importing configurations with inline certificates +* Do not require password if user chose not to store it +* Cosmetic UI fixes +* Enhanced the GUI to support agent-owned and always-ask passwords +* Support running unprivileged +* Default to disabling periodic renegotioation. This avoids renegotiating + unnecessarily if the server doesn't specify a renegotiation timeout, + improving usability for OTP users + + +======================================================= +network-manager-openvpn-1.0 +Overview of changes since network-manager-openvpn-0.9.10 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Use Unix socket for management instead of local TCP socket +* Make password requests more robust +* Allow specifying port and protocol for multiple remotes (VPN gateways) + + +======================================================= +network-manager-openvpn-0.9.10 +Overview of changes since network-manager-openvpn-0.9.8 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Allow specifying custom interface name and key size +* Better handle --up-restart +* Use libsecret for password storage instead of gnome-keyring +* Add support for interactive password queries from openvpn +* Add support for IPv6 tunnels + + +======================================================= +network-manager-openvpn-0.9.8 +Overview of changes since network-manager-openvpn-0.9.6 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Builds against the GNOME 3.8 versions of GLib and Gtk+ +* nm-openvpn-service now returns translated error messages +* Add support for the 'remote-cert-tls' method for verifying the + server certificate +* Fixed import/export to handle multiple remote servers +* No longer asks for a password when using a passwordless auth mode + + +======================================================= +network-manager-openvpn-0.9.6 +Overview of changes since network-manager-openvpn-0.9.4 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Add option to randomize connect order to openvpn servers/peers + + +======================================================= +network-manager-openvpn-0.9.4 +Overview of changes since network-manager-openvpn-0.9.2 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Fix issues with password dialog width on recent GTK+ versions +* Allow cipher and HMAC options to be set for Static Key mode +* Support for "external UI mode" for DE-native dialogs (ie, GNOME Shell and others) + + +======================================================= +network-manager-openvpn-0.9.2 +Overview of changes since network-manager-openvpn-0.9.0 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations + + +======================================================= +network-manager-openvpn-0.9.0 +Overview of changes since network-manager-openvpn-0.8.x +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated for NM 0.9 simplified configuration and secrets handling +* Allow passwords to be explicitly asked for every time + + +======================================================= +network-manager-openvpn-0.8.6 +Overview of changes since network-manager-openvpn-0.8.4 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Added support for the RSA-MD4 HMAC digest algorithm + + +======================================================= +network-manager-openvpn-0.8.4 +Overview of changes since network-manager-openvpn-0.8.2 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Convert to GtkBuilder; glade is not longer a build requirement +* Show unencrypted private keys in private key selection file chooser +* Allow larger renegotiation intervals +* Handle secrets for system connections +* Fix handling of various HTTP proxy password issues +* Export HTTP and SOCKS proxy authentication files + +======================================================= +network-manager-openvpn-0.8.2 +Overview of changes since network-manager-openvpn-0.8.1 +======================================================= + +This is a new stable release of network-manager-openvpn. Notable changes include: + +* Updated translations +* Fixes to ensure correct IP configuration of tunnels +* Support for HTTP and SOCKS proxies +* Better debugging options + diff --git a/README b/README new file mode 100644 index 0000000..b8d0bfd --- /dev/null +++ b/README @@ -0,0 +1,15 @@ +OpenVPN support for NetworkManager + +Added by Tim Niemueller http://www.niemueller.de + +Assumes that you have a running OpenVPN X.509 setup as mentioned +in the OpenVPN 2.0 HOWTO on the OpenVPN homepage. + +TODO: Support for static keys, support for password authentication, +only present auth-dialog if needed. + +Code released under the GPL. See COPYING file in the NetworkManager +directory. + +Aachen, 2005/11/12 + diff --git a/appdata/network-manager-openvpn.metainfo.xml.in b/appdata/network-manager-openvpn.metainfo.xml.in new file mode 100644 index 0000000..b511712 --- /dev/null +++ b/appdata/network-manager-openvpn.metainfo.xml.in @@ -0,0 +1,41 @@ + + + + network-manager-openvpn + GPL-2.0+ + CC0-1.0 + nm-connection-editor.desktop + gnome-control-center.desktop + <_name>OpenVPN client + <_summary>Client for OpenVPN virtual private networks + + + network + manager + NetworkManager + connection + VPN + OpenVPN + + + + <_p>Support for configuring OpenVPN virtual private network connections. + <_p>OpenVPN is a popular and flexible free-software VPN solution. + + + + + https://git.gnome.org/browse/network-manager-openvpn/plain/appdata/openvpn.png + + + The advanced options dialog + https://git.gnome.org/browse/network-manager-openvpn/plain/appdata/openvpn-advanced.png + + + + https://wiki.gnome.org/Projects/NetworkManager/VPN + https://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager + networkmanager-maint@gnome.bugs + NetworkManager-openvpn + <_developer_name>The NetworkManager Developers + diff --git a/appdata/openvpn-advanced.png b/appdata/openvpn-advanced.png new file mode 100644 index 0000000..744a749 Binary files /dev/null and b/appdata/openvpn-advanced.png differ diff --git a/appdata/openvpn.png b/appdata/openvpn.png new file mode 100644 index 0000000..2ff454d Binary files /dev/null and b/appdata/openvpn.png differ diff --git a/auth-dialog/main.c b/auth-dialog/main.c new file mode 100644 index 0000000..7f320a3 --- /dev/null +++ b/auth-dialog/main.c @@ -0,0 +1,580 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager Wireless Applet -- Display wireless access points and allow user control + * + * Dan Williams + * Tim Niemueller + * + * 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. + * + * (C) Copyright 2004 - 2008 Red Hat, Inc. + * 2005 Tim Niemueller [www.niemueller.de] + */ + +#include "nm-default.h" + +#include +#include +#include +#include + +#include + +#include + +#include "utils.h" + +#define KEYRING_UUID_TAG "connection-uuid" +#define KEYRING_SN_TAG "setting-name" +#define KEYRING_SK_TAG "setting-key" + +static const SecretSchema network_manager_secret_schema = { + "org.freedesktop.NetworkManager.Connection", + SECRET_SCHEMA_DONT_MATCH_NAME, + { + { KEYRING_UUID_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, + { KEYRING_SN_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, + { KEYRING_SK_TAG, SECRET_SCHEMA_ATTRIBUTE_STRING }, + { NULL, 0 }, + } +}; + +#define UI_KEYFILE_GROUP "VPN Plugin UI" + +static char * +keyring_lookup_secret (const char *uuid, const char *secret_name) +{ + GHashTable *attrs; + GList *list; + char *secret = NULL; + + attrs = secret_attributes_build (&network_manager_secret_schema, + KEYRING_UUID_TAG, uuid, + KEYRING_SN_TAG, NM_SETTING_VPN_SETTING_NAME, + KEYRING_SK_TAG, secret_name, + NULL); + + list = secret_service_search_sync (NULL, &network_manager_secret_schema, attrs, + SECRET_SEARCH_ALL | SECRET_SEARCH_UNLOCK | SECRET_SEARCH_LOAD_SECRETS, + NULL, NULL); + if (list && list->data) { + SecretItem *item = list->data; + SecretValue *value = secret_item_get_secret (item); + + if (value) { + secret = g_strdup (secret_value_get (value, NULL)); + secret_value_unref (value); + } + } + + g_list_free_full (list, g_object_unref); + g_hash_table_unref (attrs); + return secret; +} + +/*****************************************************************/ + +typedef void (*NoSecretsRequiredFunc) (void); + +/* Returns TRUE on success, FALSE on cancel */ +typedef gboolean (*AskUserFunc) (const char *vpn_name, + const char *prompt, + gboolean need_password, + const char *existing_password, + char **out_new_password, + gboolean need_certpass, + const char *existing_certpass, + char **out_new_certpass, + gboolean need_proxypass, + const char *existing_proxypass, + char **out_new_proxypass); + +typedef void (*FinishFunc) (const char *vpn_name, + const char *prompt, + gboolean allow_interaction, + gboolean need_password, + const char *password, + gboolean need_certpass, + const char *certpass, + gboolean need_proxypass, + const char *proxypass); + +/*****************************************************************/ +/* External UI mode stuff */ + +static void +keyfile_add_entry_info (GKeyFile *keyfile, + const gchar *key, + const gchar *value, + const gchar *label, + gboolean is_secret, + gboolean should_ask) +{ + g_key_file_set_string (keyfile, key, "Value", value); + g_key_file_set_string (keyfile, key, "Label", label); + g_key_file_set_boolean (keyfile, key, "IsSecret", is_secret); + g_key_file_set_boolean (keyfile, key, "ShouldAsk", should_ask); +} + +static void +keyfile_print_stdout (GKeyFile *keyfile) +{ + gchar *data; + gsize length; + + data = g_key_file_to_data (keyfile, &length, NULL); + + fputs (data, stdout); + + g_free (data); +} + +static void +eui_no_secrets_required (void) +{ + GKeyFile *keyfile; + + keyfile = g_key_file_new (); + + g_key_file_set_integer (keyfile, UI_KEYFILE_GROUP, "Version", 2); + keyfile_add_entry_info (keyfile, NM_OPENVPN_KEY_NOSECRET, "true", "", TRUE, FALSE); + keyfile_print_stdout (keyfile); + g_key_file_unref (keyfile); +} + +static void +eui_finish (const char *vpn_name, + const char *prompt, + gboolean allow_interaction, + gboolean need_password, + const char *existing_password, + gboolean need_certpass, + const char *existing_certpass, + gboolean need_proxypass, + const char *existing_proxypass) +{ + GKeyFile *keyfile; + char *title; + + keyfile = g_key_file_new (); + + g_key_file_set_integer (keyfile, UI_KEYFILE_GROUP, "Version", 2); + g_key_file_set_string (keyfile, UI_KEYFILE_GROUP, "Description", prompt); + + title = g_strdup_printf (_("Authenticate VPN %s"), vpn_name); + g_key_file_set_string (keyfile, UI_KEYFILE_GROUP, "Title", title); + g_free (title); + + keyfile_add_entry_info (keyfile, + NM_OPENVPN_KEY_PASSWORD, + existing_password ? existing_password : "", + _("Password:"), + TRUE, + need_password && allow_interaction); + + keyfile_add_entry_info (keyfile, + NM_OPENVPN_KEY_CERTPASS, + existing_certpass ? existing_certpass : "", + _("Certificate password:"), + TRUE, + need_certpass && allow_interaction); + + keyfile_add_entry_info (keyfile, + NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, + existing_proxypass ? existing_proxypass : "", + _("HTTP proxy password:"), + TRUE, + need_proxypass && allow_interaction); + + keyfile_print_stdout (keyfile); + g_key_file_unref (keyfile); +} + +/*****************************************************************/ + +static void +std_no_secrets_required (void) +{ + printf ("%s\n%s\n\n\n", NM_OPENVPN_KEY_NOSECRET, "true"); +} + +static gboolean +std_ask_user (const char *vpn_name, + const char *prompt, + gboolean need_password, + const char *existing_password, + char **out_new_password, + gboolean need_certpass, + const char *existing_certpass, + char **out_new_certpass, + gboolean need_proxypass, + const char *existing_proxypass, + char **out_new_proxypass) +{ + NMAVpnPasswordDialog *dialog; + gboolean success = FALSE; + + g_return_val_if_fail (vpn_name != NULL, FALSE); + g_return_val_if_fail (prompt != NULL, FALSE); + g_return_val_if_fail (out_new_password != NULL, FALSE); + g_return_val_if_fail (out_new_certpass != NULL, FALSE); + g_return_val_if_fail (out_new_proxypass != NULL, FALSE); + + dialog = NMA_VPN_PASSWORD_DIALOG (nma_vpn_password_dialog_new (_("Authenticate VPN"), prompt, NULL)); + + /* pre-fill dialog with existing passwords */ + nma_vpn_password_dialog_set_show_password (dialog, need_password); + if (need_password) + nma_vpn_password_dialog_set_password (dialog, existing_password); + + nma_vpn_password_dialog_set_show_password_secondary (dialog, need_certpass); + if (need_certpass) { + nma_vpn_password_dialog_set_password_secondary_label (dialog, _("Certificate pass_word:") ); + nma_vpn_password_dialog_set_password_secondary (dialog, existing_certpass); + } + + nma_vpn_password_dialog_set_show_password_ternary (dialog, need_proxypass); + if (need_proxypass) { + nma_vpn_password_dialog_set_password_ternary_label (dialog, _("_HTTP proxy password:")); + nma_vpn_password_dialog_set_password_ternary (dialog, existing_proxypass); + } + + gtk_widget_show (GTK_WIDGET (dialog)); + if (nma_vpn_password_dialog_run_and_block (dialog)) { + if (need_password) + *out_new_password = g_strdup (nma_vpn_password_dialog_get_password (dialog)); + if (need_certpass) + *out_new_certpass = g_strdup (nma_vpn_password_dialog_get_password_secondary (dialog)); + if (need_proxypass) + *out_new_proxypass = g_strdup (nma_vpn_password_dialog_get_password_ternary (dialog)); + + success = TRUE; + } + + gtk_widget_destroy (GTK_WIDGET (dialog)); + return success; +} + +static void +wait_for_quit (void) +{ + GString *str; + char c; + ssize_t n; + time_t start; + + str = g_string_sized_new (10); + start = time (NULL); + do { + errno = 0; + n = read (0, &c, 1); + if (n == 0 || (n < 0 && errno == EAGAIN)) + g_usleep (G_USEC_PER_SEC / 10); + else if (n == 1) { + g_string_append_c (str, c); + if (strstr (str->str, "QUIT") || (str->len > 10)) + break; + } else + break; + } while (time (NULL) < start + 20); + g_string_free (str, TRUE); +} + +static void +std_finish (const char *vpn_name, + const char *prompt, + gboolean allow_interaction, + gboolean need_password, + const char *password, + gboolean need_certpass, + const char *certpass, + gboolean need_proxypass, + const char *proxypass) +{ + /* Send the passwords back to our parent */ + if (password) + printf ("%s\n%s\n", NM_OPENVPN_KEY_PASSWORD, password); + if (certpass) + printf ("%s\n%s\n", NM_OPENVPN_KEY_CERTPASS, certpass); + if (proxypass) + printf ("%s\n%s\n", NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, proxypass); + printf ("\n\n"); + + /* for good measure, flush stdout since Kansas is going Bye-Bye */ + fflush (stdout); + + /* Wait for quit signal */ + wait_for_quit (); +} + +/*****************************************************************/ + +static void +get_existing_passwords (GHashTable *vpn_data, + GHashTable *existing_secrets, + const char *vpn_uuid, + gboolean need_password, + gboolean need_certpass, + gboolean need_proxypass, + char **out_password, + char **out_certpass, + char **out_proxypass) +{ + NMSettingSecretFlags pw_flags = NM_SETTING_SECRET_FLAG_NONE; + NMSettingSecretFlags cp_flags = NM_SETTING_SECRET_FLAG_NONE; + NMSettingSecretFlags proxy_flags = NM_SETTING_SECRET_FLAG_NONE; + + g_return_if_fail (out_password != NULL); + g_return_if_fail (out_certpass != NULL); + g_return_if_fail (out_proxypass != NULL); + + nm_vpn_service_plugin_get_secret_flags (vpn_data, NM_OPENVPN_KEY_PASSWORD, &pw_flags); + if (need_password) { + if (!(pw_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)) { + *out_password = g_strdup (g_hash_table_lookup (existing_secrets, NM_OPENVPN_KEY_PASSWORD)); + if (!*out_password) + *out_password = keyring_lookup_secret (vpn_uuid, NM_OPENVPN_KEY_PASSWORD); + } + } + + nm_vpn_service_plugin_get_secret_flags (vpn_data, NM_OPENVPN_KEY_CERTPASS, &cp_flags); + if (need_certpass) { + if (!(cp_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)) { + *out_certpass = g_strdup (g_hash_table_lookup (existing_secrets, NM_OPENVPN_KEY_CERTPASS)); + if (!*out_certpass) + *out_certpass = keyring_lookup_secret (vpn_uuid, NM_OPENVPN_KEY_CERTPASS); + } + } + + nm_vpn_service_plugin_get_secret_flags (vpn_data, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, &proxy_flags); + if (need_proxypass) { + if (!(proxy_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)) { + *out_proxypass = g_strdup (g_hash_table_lookup (existing_secrets, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD)); + if (!*out_proxypass) + *out_proxypass = keyring_lookup_secret (vpn_uuid, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD); + } + } +} + +#define VPN_MSG_TAG "x-vpn-message:" + +static char * +get_passwords_required (GHashTable *data, + char **hints, + gboolean *out_need_password, + gboolean *out_need_certpass, + gboolean *out_need_proxypass) +{ + const char *ctype, *val; + NMSettingSecretFlags flags; + char *prompt = NULL; + char **iter; + + /* If hints are given, then always ask for what the hints require */ + if (hints && g_strv_length (hints)) { + for (iter = hints; iter && *iter; iter++) { + if (!prompt && g_str_has_prefix (*iter, VPN_MSG_TAG)) + prompt = g_strdup (*iter + strlen (VPN_MSG_TAG)); + else if (strcmp (*iter, NM_OPENVPN_KEY_PASSWORD) == 0) + *out_need_password = TRUE; + else if (strcmp (*iter, NM_OPENVPN_KEY_CERTPASS) == 0) + *out_need_certpass = TRUE; + else if (strcmp (*iter, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD) == 0) + *out_need_proxypass = TRUE; + } + return prompt; + } + + ctype = g_hash_table_lookup (data, NM_OPENVPN_KEY_CONNECTION_TYPE); + g_return_val_if_fail (ctype != NULL, NULL); + + if (!strcmp (ctype, NM_OPENVPN_CONTYPE_TLS) || !strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + /* Normal user password */ + flags = NM_SETTING_SECRET_FLAG_NONE; + nm_vpn_service_plugin_get_secret_flags (data, NM_OPENVPN_KEY_PASSWORD, &flags); + if ( !strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD_TLS) + && !(flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)) + *out_need_password = TRUE; + + /* Encrypted private key password */ + val = g_hash_table_lookup (data, NM_OPENVPN_KEY_KEY); + if (val) + *out_need_certpass = is_encrypted (val); + } else if (!strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD)) { + flags = NM_SETTING_SECRET_FLAG_NONE; + nm_vpn_service_plugin_get_secret_flags (data, NM_OPENVPN_KEY_PASSWORD, &flags); + if (!(flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)) + *out_need_password = TRUE; + } + + val = g_hash_table_lookup (data, NM_OPENVPN_KEY_PROXY_SERVER); + if (val && val[0]) { + flags = NM_SETTING_SECRET_FLAG_NONE; + nm_vpn_service_plugin_get_secret_flags (data, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, &flags); + if (!(flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)) + *out_need_proxypass = TRUE; + } + + return NULL; +} + +static void +free_secret (char *p) +{ + if (p) { + memset (p, 0, strlen (p)); + g_free (p); + } +} + +int +main (int argc, char *argv[]) +{ + gboolean retry = FALSE, allow_interaction = FALSE; + gchar *vpn_name = NULL; + gchar *vpn_uuid = NULL; + gchar *vpn_service = NULL; + GHashTable *data = NULL, *secrets = NULL; + gboolean need_password = FALSE, need_certpass = FALSE, need_proxypass = FALSE; + char *existing_password = NULL, *existing_certpass = NULL, *existing_proxypass = NULL; + char *new_password = NULL, *new_certpass = NULL, *new_proxypass = NULL; + char **hints = NULL; + char *prompt = NULL; + gboolean external_ui_mode = FALSE, canceled = FALSE, ask_user = FALSE; + + NoSecretsRequiredFunc no_secrets_required_func = NULL; + AskUserFunc ask_user_func = NULL; + FinishFunc finish_func = NULL; + + GOptionContext *context; + GOptionEntry entries[] = { + { "reprompt", 'r', 0, G_OPTION_ARG_NONE, &retry, "Reprompt for passwords", NULL}, + { "uuid", 'u', 0, G_OPTION_ARG_STRING, &vpn_uuid, "UUID of VPN connection", NULL}, + { "name", 'n', 0, G_OPTION_ARG_STRING, &vpn_name, "Name of VPN connection", NULL}, + { "service", 's', 0, G_OPTION_ARG_STRING, &vpn_service, "VPN service type", NULL}, + { "allow-interaction", 'i', 0, G_OPTION_ARG_NONE, &allow_interaction, "Allow user interaction", NULL}, + { "external-ui-mode", 0, 0, G_OPTION_ARG_NONE, &external_ui_mode, "External UI mode", NULL}, + { "hint", 't', 0, G_OPTION_ARG_STRING_ARRAY, &hints, "Hints from the VPN plugin", NULL}, + { NULL } + }; + + bindtextdomain (GETTEXT_PACKAGE, NULL); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + gtk_init (&argc, &argv); + + context = g_option_context_new ("- openvpn auth dialog"); + g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); + g_option_context_parse (context, &argc, &argv, NULL); + g_option_context_free (context); + + if (vpn_uuid == NULL || vpn_name == NULL || vpn_service == NULL) { + fprintf (stderr, "Have to supply ID, name, and service\n"); + return EXIT_FAILURE; + } + + if (strcmp (vpn_service, NM_VPN_SERVICE_TYPE_OPENVPN) != 0) { + fprintf (stderr, "This dialog only works with the '%s' service\n", NM_VPN_SERVICE_TYPE_OPENVPN); + return EXIT_FAILURE; + } + + if (!nm_vpn_service_plugin_read_vpn_details (0, &data, &secrets)) { + fprintf (stderr, "Failed to read '%s' (%s) data and secrets from stdin.\n", + vpn_name, vpn_uuid); + return 1; + } + + if (external_ui_mode) { + no_secrets_required_func = eui_no_secrets_required; + finish_func = eui_finish; + } else { + no_secrets_required_func = std_no_secrets_required; + ask_user_func = std_ask_user; + finish_func = std_finish; + } + + /* Determine which passwords are actually required, either from hints or + * from looking at the VPN configuration. + */ + prompt = get_passwords_required (data, hints, &need_password, &need_certpass, &need_proxypass); + if (!prompt) + prompt = g_strdup_printf (_("You need to authenticate to access the Virtual Private Network “%s”."), vpn_name); + + /* Exit early if we don't need any passwords */ + if (!need_password && !need_certpass && !need_proxypass) + no_secrets_required_func (); + else { + get_existing_passwords (data, + secrets, + vpn_uuid, + need_password, + need_certpass, + need_proxypass, + &existing_password, + &existing_certpass, + &existing_proxypass); + if (need_password && !existing_password) + ask_user = TRUE; + if (need_certpass && !existing_certpass) + ask_user = TRUE; + if (need_proxypass && !existing_proxypass) + ask_user = TRUE; + + /* If interaction is allowed then ask the user, otherwise pass back + * whatever existing secrets we can find. + */ + if (ask_user_func && allow_interaction && (ask_user || retry)) { + canceled = !ask_user_func (vpn_name, + prompt, + need_password, + existing_password, + &new_password, + need_certpass, + existing_certpass, + &new_certpass, + need_proxypass, + existing_proxypass, + &new_proxypass); + } + + if (!canceled) { + finish_func (vpn_name, + prompt, + allow_interaction, + need_password, + new_password ? new_password : existing_password, + need_certpass, + new_certpass ? new_certpass : existing_certpass, + need_proxypass, + new_proxypass ? new_proxypass : existing_proxypass); + } + + free_secret (existing_password); + free_secret (existing_certpass); + free_secret (existing_proxypass); + free_secret (new_password); + free_secret (new_certpass); + free_secret (new_proxypass); + } + + if (data) + g_hash_table_unref (data); + if (secrets) + g_hash_table_unref (secrets); + if (hints) + g_strfreev (hints); + g_free (prompt); + return canceled ? 1 : 0; +} diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..09aacca --- /dev/null +++ b/autogen.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. +REQUIRED_AUTOMAKE_VERSION=1.9 +PKG_NAME=NetworkManager-openvpn + +(test -f $srcdir/configure.ac \ + && test -f $srcdir/auth-dialog/main.c) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level $PKG_NAME directory" + exit 1 +} + +(cd $srcdir; + autoreconf --install --symlink && + intltoolize --force && + autoreconf && + ./configure --enable-maintainer-mode $@ +) + + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..4f125f8 --- /dev/null +++ b/configure.ac @@ -0,0 +1,160 @@ +AC_PREREQ(2.52) + +AC_INIT(NetworkManager-wireguard, + 0.0.1, + https://example.org/bugtracker?product=nm-wg, + NetworkManager-wireguard) +AM_INIT_AUTOMAKE([1.9 tar-ustar no-dist-gzip dist-xz]) +AM_MAINTAINER_MODE +AM_SILENT_RULES([yes]) + +AC_CONFIG_MACRO_DIR([m4]) + +AC_CONFIG_HEADERS([config.h]) + +dnl Prefer gcc-* variants; the ones libtool would choose don't work with LTO +AC_CHECK_TOOLS(AR, [gcc-ar ar], false) +AC_CHECK_TOOLS(RANLIB, [gcc-ranlib ranlib], :) + +LT_INIT([disable-static]) + +dnl +dnl Require programs +dnl +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_INSTALL +AC_PROG_LIBTOOL +AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources) + +dnl +dnl Required headers +dnl +AC_HEADER_STDC +AC_CHECK_HEADERS(fcntl.h paths.h sys/ioctl.h sys/time.h syslog.h unistd.h) + +dnl +dnl Checks for typedefs, structures, and compiler characteristics. +dnl +AC_TYPE_MODE_T +AC_TYPE_PID_T +AC_HEADER_TIME + +dnl +dnl Checks for library functions. +dnl +AC_PROG_GCC_TRADITIONAL +AC_FUNC_MEMCMP +AC_CHECK_FUNCS(select socket uname) + +GIT_SHA_RECORD(NM_GIT_SHA) + +AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=]) +AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen") + +dnl ensure that when the Automake generated makefile calls aclocal, +dnl it honours the $ACLOCAL_FLAGS environment variable +ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}" +if test -n "$ac_macro_dir"; then + ACLOCAL_AMFLAGS="-I $ac_macro_dir $ACLOCAL_AMFLAGS" +fi +AC_SUBST([ACLOCAL_AMFLAGS]) + +dnl +dnl GNOME support +dnl +AC_ARG_WITH(gnome, AS_HELP_STRING([--without-gnome], [Build NetworkManager-wireguard without GNOME support, e.g. vpn service only]), [], [with_gnome_specified=no]) +AC_ARG_WITH(libnm-glib, AS_HELP_STRING([--without-libnm-glib], [Build NetworkManager-wireguard without libnm-glib comatibility]), [], [with_libnm_glib_specified=no]) +if test "$with_libnm_glib_specified" != no -a "$with_libnm_glib" != no; then + if test "$with_gnome_specified" != no -a "$with_gnome" == no; then + AC_MSG_ERROR(Building --with-libnm-glib conflicts with --without-gnome) + fi +fi +if test "$with_gnome" != no; then + with_gnome=yes +fi +if test "$with_libnm_glib_specified" == no; then + with_libnm_glib="$with_gnome" +fi +if test "$with_libnm_glib" != no; then + with_libnm_glib=yes +fi +AM_CONDITIONAL(WITH_GNOME, test "$with_gnome" != no) +AM_CONDITIONAL(WITH_LIBNM_GLIB, test "$with_libnm_glib" != no) + +AC_ARG_ENABLE(absolute-paths, AS_HELP_STRING([--enable-absolute-paths], [Use absolute paths to in .name files. Useful for development. (default is no)])) + +GETTEXT_PACKAGE=NetworkManager-wireguard +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) + +IT_PROG_INTLTOOL([0.35]) +AM_GLIB_GNU_GETTEXT + +PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.32) +GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32" + +if test x"$with_gnome" != xno; then + PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.4) + GTK_CFLAGS="$GTK_CFLAGS -DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4" + + PKG_CHECK_MODULES(LIBNMA, libnma >= 1.7.0) + PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= 0.18) + + if test x"$with_libnm_glib" != xno; then + PKG_CHECK_MODULES(LIBNM_GTK, libnm-gtk >= 1.7.0) + PKG_CHECK_MODULES(LIBNM_GLIB, + NetworkManager >= 1.7.0 + libnm-util >= 1.7.0 + libnm-glib >= 1.7.0 + libnm-glib-vpn >= 1.7.0); + + LIBNM_GLIB_CFLAGS="$LIBNM_GLIB_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_2" + LIBNM_GLIB_CFLAGS="$LIBNM_GLIB_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_2" + fi +fi + +PKG_CHECK_MODULES(LIBNM, libnm >= 1.7.0) +LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8" +LIBNM_CFLAGS="$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8" + +NM_VPN_SERVICE_DIR=`$PKG_CONFIG --define-variable prefix='\${prefix}' --variable vpnservicedir libnm` +AC_SUBST(NM_VPN_SERVICE_DIR) + +NM_COMPILER_WARNINGS([yes]) +NM_LTO +NM_LD_GC + +NM_PLUGIN_DIR="$libdir/NetworkManager" +AC_SUBST(NM_PLUGIN_DIR) +if test x"$enable_absolute_paths" == x"yes"; then + NM_PLUGIN_DIR_NAME_FILE="$NM_PLUGIN_DIR/" +else + enable_absolute_paths=no + NM_PLUGIN_DIR_NAME_FILE="" +fi +AC_SUBST(NM_PLUGIN_DIR_NAME_FILE) + +dnl +dnl Distribution version string +dnl +AC_ARG_WITH(dist-version, AS_HELP_STRING([--with-dist-version=], [Define the custom version (like distribution package name and revision)]), ac_distver=$withval, ac_distver="") +if ! test x"$ac_distver" = x""; then + AC_DEFINE_UNQUOTED(DIST_VERSION, "$ac_distver", [Define the distribution version string]) +fi + +AC_CONFIG_FILES([ +Makefile +po/Makefile.in +]) +AC_OUTPUT + +echo "" +echo "Build configuration: " +echo " --with-gnome=$with_gnome" +echo " --with-libnm-glib=$with_libnm_glib" +echo " --enable-absolute-paths=$enable_absolute_paths" +echo " --enable-more-warnings=$set_more_warnings" +echo " --enable-lto=$enable_lto" +echo " --enable-ld-gc=$enable_ld_gc" +echo "" diff --git a/linker-script-binary.ver b/linker-script-binary.ver new file mode 100644 index 0000000..a2780c0 --- /dev/null +++ b/linker-script-binary.ver @@ -0,0 +1,6 @@ +{ +global: + _IO_stdin_used; +local: + *; +}; diff --git a/m4/attributes.m4 b/m4/attributes.m4 new file mode 100644 index 0000000..51ac88b --- /dev/null +++ b/m4/attributes.m4 @@ -0,0 +1,292 @@ +dnl Macros to check the presence of generic (non-typed) symbols. +dnl Copyright (c) 2006-2008 Diego Pettenò +dnl Copyright (c) 2006-2008 xine project +dnl Copyright (c) 2012 Lucas De Marchi +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2, or (at your option) +dnl any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +dnl 02110-1301, USA. +dnl +dnl As a special exception, the copyright owners of the +dnl macro gives unlimited permission to copy, distribute and modify the +dnl configure scripts that are the output of Autoconf when processing the +dnl Macro. You need not follow the terms of the GNU General Public +dnl License when using or distributing such scripts, even though portions +dnl of the text of the Macro appear in them. The GNU General Public +dnl License (GPL) does govern all other use of the material that +dnl constitutes the Autoconf Macro. +dnl +dnl This special exception to the GPL applies to versions of the +dnl Autoconf Macro released by this project. When you make and +dnl distribute a modified version of the Autoconf Macro, you may extend +dnl this special exception to the GPL to apply to your modified version as +dnl well. + +dnl Check if FLAG in ENV-VAR is supported by compiler and append it +dnl to WHERE-TO-APPEND variable. Note that we invert -Wno-* checks to +dnl -W* as gcc cannot test for negated warnings. If a C snippet is passed, +dnl use it, otherwise use a simple main() definition that just returns 0. +dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG], [C-SNIPPET]) + +AC_DEFUN([CC_CHECK_FLAG_APPEND], [ + AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2], + AS_TR_SH([cc_cv_$2_$3]), + [eval "AS_TR_SH([cc_save_$2])='${$2}'" + eval "AS_TR_SH([$2])='${cc_save_$2} -Werror `echo "$3" | sed 's/^-Wno-/-W/'`'" + AC_LINK_IFELSE([AC_LANG_SOURCE(ifelse([$4], [], + [int main(void) { return 0; } ], + [$4]))], + [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"], + [eval "AS_TR_SH([cc_cv_$2_$3])='no'"]) + eval "AS_TR_SH([$2])='$cc_save_$2'"]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes], + [eval "$1='${$1} $3'"]) +]) + +dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2], [C-SNIPPET]) +AC_DEFUN([CC_CHECK_FLAGS_APPEND], [ + for flag in [$3]; do + CC_CHECK_FLAG_APPEND([$1], [$2], $flag, [$4]) + done +]) + +dnl Check if the flag is supported by linker (cacheable) +dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) + +AC_DEFUN([CC_CHECK_LDFLAGS], [ + AC_CACHE_CHECK([if $CC supports $1 flag], + AS_TR_SH([cc_cv_ldflags_$1]), + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $1" + AC_LINK_IFELSE([int main() { return 1; }], + [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) + LDFLAGS="$ac_save_LDFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], + [$2], [$3]) +]) + +dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for +dnl the current linker to avoid undefined references in a shared object. +AC_DEFUN([CC_NOUNDEFINED], [ + dnl We check $host for which systems to enable this for. + AC_REQUIRE([AC_CANONICAL_HOST]) + + case $host in + dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads + dnl are requested, as different implementations are present; to avoid problems + dnl use -Wl,-z,defs only for those platform not behaving this way. + *-freebsd* | *-openbsd*) ;; + *) + dnl First of all check for the --no-undefined variant of GNU ld. This allows + dnl for a much more readable command line, so that people can understand what + dnl it does without going to look for what the heck -z defs does. + for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do + CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) + break + done + ;; + esac + + AC_SUBST([LDFLAGS_NOUNDEFINED]) +]) + +dnl Check for a -Werror flag or equivalent. -Werror is the GCC +dnl and ICC flag that tells the compiler to treat all the warnings +dnl as fatal. We usually need this option to make sure that some +dnl constructs (like attributes) are not simply ignored. +dnl +dnl Other compilers don't support -Werror per se, but they support +dnl an equivalent flag: +dnl - Sun Studio compiler supports -errwarn=%all +AC_DEFUN([CC_CHECK_WERROR], [ + AC_CACHE_CHECK( + [for $CC way to treat warnings as errors], + [cc_cv_werror], + [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], + [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) + ]) +]) + +AC_DEFUN([CC_CHECK_ATTRIBUTE], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], + AS_TR_SH([cc_cv_attribute_$1]), + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], + [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], + [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], + [AC_DEFINE( + AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, + [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] + ) + $4], + [$5]) +]) + +AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ + CC_CHECK_ATTRIBUTE( + [constructor],, + [void __attribute__((constructor)) ctor() { int a; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ + CC_CHECK_ATTRIBUTE( + [format], [format(printf, n, n)], + [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ + CC_CHECK_ATTRIBUTE( + [format_arg], [format_arg(printf)], + [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ + CC_CHECK_ATTRIBUTE( + [visibility_$1], [visibility("$1")], + [void __attribute__((visibility("$1"))) $1_function() { }], + [$2], [$3]) +]) + +AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ + CC_CHECK_ATTRIBUTE( + [nonnull], [nonnull()], + [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ + CC_CHECK_ATTRIBUTE( + [unused], , + [void some_function(void *foo, __attribute__((unused)) void *bar);], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ + CC_CHECK_ATTRIBUTE( + [sentinel], , + [void some_function(void *foo, ...) __attribute__((sentinel));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ + CC_CHECK_ATTRIBUTE( + [deprecated], , + [void some_function(void *foo, ...) __attribute__((deprecated));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ + CC_CHECK_ATTRIBUTE( + [alias], [weak, alias], + [void other_function(void *foo) { } + void some_function(void *foo) __attribute__((weak, alias("other_function")));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ + CC_CHECK_ATTRIBUTE( + [malloc], , + [void * __attribute__((malloc)) my_alloc(int n);], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_PACKED], [ + CC_CHECK_ATTRIBUTE( + [packed], , + [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));], + [$1], [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_CONST], [ + CC_CHECK_ATTRIBUTE( + [const], , + [int __attribute__((const)) twopow(int n) { return 1 << n; } ], + [$1], [$2]) +]) + +AC_DEFUN([CC_FLAG_VISIBILITY], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], + [cc_cv_flag_visibility], + [cc_flag_visibility_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], + cc_cv_flag_visibility='yes', + cc_cv_flag_visibility='no') + CFLAGS="$cc_flag_visibility_save_CFLAGS"]) + + AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], + [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, + [Define this if the compiler supports the -fvisibility flag]) + $1], + [$2]) +]) + +AC_DEFUN([CC_FUNC_EXPECT], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([if compiler has __builtin_expect function], + [cc_cv_func_expect], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [int some_function() { + int a = 3; + return (int)__builtin_expect(a, 3); + }])], + [cc_cv_func_expect=yes], + [cc_cv_func_expect=no]) + CFLAGS="$ac_save_CFLAGS" + ]) + + AS_IF([test "x$cc_cv_func_expect" = "xyes"], + [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, + [Define this if the compiler supports __builtin_expect() function]) + $1], + [$2]) +]) + +AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ + AC_REQUIRE([CC_CHECK_WERROR]) + AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], + [cc_cv_attribute_aligned], + [ac_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $cc_cv_werror" + for cc_attribute_align_try in 64 32 16 8 4 2; do + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ + int main() { + static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; + return c; + }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + done + CFLAGS="$ac_save_CFLAGS" + ]) + + if test "x$cc_cv_attribute_aligned" != "x"; then + AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], + [Define the highest alignment supported]) + fi +]) diff --git a/m4/compiler_options.m4 b/m4/compiler_options.m4 new file mode 100644 index 0000000..ccb51f5 --- /dev/null +++ b/m4/compiler_options.m4 @@ -0,0 +1,166 @@ +AC_DEFUN([_NM_COMPILER_FLAG], [ + CFLAGS_SAVED="$CFLAGS" + CFLAGS="$CFLAGS $GLIB_CFLAGS -Werror $1" + AC_MSG_CHECKING([whether $1 works as expected]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])], [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$2]])], [ + AC_MSG_RESULT(yes) + CFLAGS="$CFLAGS_SAVED" + $3 + ],[ + AC_MSG_RESULT(no) + CFLAGS="$CFLAGS_SAVED" + $4 + ]) + ],[ + AC_MSG_RESULT(not supported) + CFLAGS="$CFLAGS_SAVED" + ]) +]) + +dnl Check whether a particular compiler flag is supported, +dnl add it to CFLAGS if it is +AC_DEFUN([NM_COMPILER_FLAG], [ + _NM_COMPILER_FLAG([$1], [], [ + CFLAGS="$CFLAGS $1" + $2 + ], [$3]) +]) + +dnl Check whether a particular warning is not emitted with code provided, +dnl disable it in CFLAGS if the check fails. +AC_DEFUN([NM_COMPILER_WARNING], [ + _NM_COMPILER_FLAG([-W$1], [$2], [CFLAGS="$CFLAGS -W$1"], [CFLAGS="$CFLAGS -Wno-$1"]) +]) + +AC_DEFUN([NM_COMPILER_WARNINGS], +[AC_ARG_ENABLE(more-warnings, + AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), + set_more_warnings="$enableval",set_more_warnings=$1) +AC_MSG_CHECKING(for more warnings) +if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then + AC_MSG_RESULT(yes) + + dnl This is enabled in clang by default, makes little sense, + dnl and causes the build to abort with -Werror. + CFLAGS_SAVED="$CFLAGS" + CFLAGS="$CFLAGS -Qunused-arguments" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [], CFLAGS="$CFLAGS_SAVED") + unset CFLAGS_SAVED + + dnl clang only warns about unknown warnings, unless + dnl called with "-Werror=unknown-warning-option" + dnl Test if the compiler supports that, and if it does + dnl attach it to the CFLAGS. + NM_COMPILER_WARNING([unknown-warning-option], []) + + CFLAGS_MORE_WARNINGS="-Wall -std=gnu99" + + if test "x$set_more_warnings" = xerror; then + CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS -Werror" + fi + + for option in \ + -Wextra \ + -Wdeclaration-after-statement \ + -Wfloat-equal \ + -Wformat-nonliteral \ + -Wformat-security \ + -Wimplicit-fallthrough \ + -Wimplicit-function-declaration \ + -Winit-self \ + -Wlogical-op \ + -Wmissing-declarations \ + -Wmissing-include-dirs \ + -Wmissing-prototypes \ + -Wpointer-arith \ + -Wshadow \ + -Wshift-negative-value \ + -Wstrict-prototypes \ + -Wundef \ + -Wno-duplicate-decl-specifier \ + -Wno-format-truncation \ + -Wno-format-y2k \ + -Wno-missing-field-initializers \ + -Wno-pragmas \ + -Wno-sign-compare \ + -Wno-unused-but-set-variable \ + -Wno-unused-parameter \ + ; do + dnl GCC 4.4 does not warn when checking for -Wno-* flags (https://gcc.gnu.org/wiki/FAQ#wnowarning) + _NM_COMPILER_FLAG([$(printf '%s' "$option" | sed 's/^-Wno-/-W/')], [], + [CFLAGS_MORE_WARNINGS="$CFLAGS_MORE_WARNINGS $option"], []) + done + unset option + + dnl Disable warnings triggered by known compiler problems + + dnl https://bugzilla.gnome.org/show_bug.cgi?id=745821 + NM_COMPILER_WARNING([unknown-attributes], [#include ]) + + dnl https://bugzilla.gnome.org/show_bug.cgi?id=744473 + NM_COMPILER_WARNING([typedef-redefinition], [#include ]) + + dnl https://llvm.org/bugs/show_bug.cgi?id=21614 + NM_COMPILER_WARNING([array-bounds], + [#include ] + [void f () { strcmp ("something", "0"); }] + ) + + dnl https://llvm.org/bugs/show_bug.cgi?id=22949 + NM_COMPILER_WARNING([parentheses-equality], + [#include ] + [void f () { if (WIFCONTINUED(0)) return; }] + ) + + dnl systemd-dhcp's log_internal macro and our handle_warn are sometimes + dnl used in void context,u sometimes in int. Makes clang unhappy. + NM_COMPILER_WARNING([unused-value], + [#define yolo ({ (666 + 666); })] + [int f () { int i = yolo; yolo; return i; }] + ) + + dnl clang 3.9 would like to see "{ { 0 } }" here, but that does not + dnl look too wise. + NM_COMPILER_WARNING([missing-braces], + [union { int a[1]; int b[2]; } c = { 0 }] + ) + + CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS" +else + AC_MSG_RESULT(no) +fi +]) + +AC_DEFUN([NM_LTO], +[AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto], [Enable Link Time Optimization for smaller size (default: no)])) +if (test "${enable_lto}" = "yes"); then + CC_CHECK_FLAG_APPEND([lto_flags], [CFLAGS], [-flto]) + if (test -n "${lto_flags}"); then + CFLAGS="-flto $CFLAGS" + else + AC_MSG_ERROR([Link Time Optimization -flto is not supported.]) + fi +else + enable_lto='no' +fi +]) + +AC_DEFUN([NM_LD_GC], +[AC_ARG_ENABLE(ld-gc, AS_HELP_STRING([--enable-ld-gc], [Enable garbage collection of unused symbols on linking (default: auto)])) +if (test "${enable_ld_gc}" != "no"); then + CC_CHECK_FLAG_APPEND([ld_gc_flags], [CFLAGS], [-fdata-sections -ffunction-sections -Wl,--gc-sections]) + if (test -n "${ld_gc_flags}"); then + enable_ld_gc="yes" + CFLAGS="$ld_gc_flags $CFLAGS" + else + if (test "${enable_ld_gc}" = "yes"); then + AC_MSG_ERROR([Unused symbol eviction requested but not supported.]) + else + enable_ld_gc="no" + fi + fi +fi +]) + diff --git a/m4/git-sha-record.m4 b/m4/git-sha-record.m4 new file mode 100644 index 0000000..e259b39 --- /dev/null +++ b/m4/git-sha-record.m4 @@ -0,0 +1,15 @@ +dnl GIT_SHA_RECORD($1, $2) +dnl +dnl $1: the name of the assigned variable. For example NM_GIT_SHA, +dnl NMA_GIT_SHA, LIBNL_GIT_SHA. +dnl $2: by default, a define to config.h is added. This can be +dnl suppressed by passing "no-config-h". +dnl +AC_DEFUN([GIT_SHA_RECORD], [ + m4_define([git_sha_record_v], + [m4_esyscmd([ ( [ -d ./.git/ ] && [ "$(readlink -f ./.git/)" = "$(readlink -f "$(git rev-parse --git-dir 2>/dev/null)" 2>/dev/null)" ] && git rev-parse --verify -q HEAD 2>/dev/null ) || true ])]) +$1=git_sha_record_v +if test ""$2"" != "no-config-h" ; then + AC_DEFINE_UNQUOTED($1,"$$1",[git commit id of the original source code version]) +fi +]) diff --git a/network-manager-openvpn.doap b/network-manager-openvpn.doap new file mode 100644 index 0000000..1d13a79 --- /dev/null +++ b/network-manager-openvpn.doap @@ -0,0 +1,26 @@ + + + + network-manager-openvpn + OpenVPN support for NetworkManager + + + + + + + + + + Dan Williams + + dcbw + + + + + diff --git a/nm-openvpn-service.conf b/nm-openvpn-service.conf new file mode 100644 index 0000000..243ab48 --- /dev/null +++ b/nm-openvpn-service.conf @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/nm-openvpn-service.name.in b/nm-openvpn-service.name.in new file mode 100644 index 0000000..973fa0a --- /dev/null +++ b/nm-openvpn-service.name.in @@ -0,0 +1,14 @@ +[VPN Connection] +name=openvpn +service=org.freedesktop.NetworkManager.openvpn +program=@LIBEXECDIR@/nm-openvpn-service +supports-multiple-connections=true + +[libnm] +plugin=@PLUGINDIR@/libnm-vpn-plugin-openvpn.so + +[GNOME] +auth-dialog=@LIBEXECDIR@/nm-openvpn-auth-dialog +properties=@PLUGINDIR@/libnm-openvpn-properties +supports-external-ui-mode=true +supports-hints=true diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 0000000..6452501 --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,810 @@ +2009-04-23 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2009-02-13 Mario Blättermann + + * de.po: Updated German translation. + +2009-03-27 Priit Laes + + * et.po: Translation updated by Mattias Põldaru + +2009-03-24 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-03-24 Ignacio Casal Quinteiro + + * gl.po: Updated Galician translation by Suso Baleato. + +2009-03-24 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-03-21 Christian Kirbach + + * de.po: Updated German translation. + +2009-03-20 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2009-03-14 Duarte Loreto + + * pt.po: Updated Portuguese translation by Filipe Gomes + . + +2009-03-12 Andre Klapper + + * cs.po: Updated Czech translation by Zdeněk Hataš. + +2009-03-12 Gintautas Miliauskas + + * lt.po: Updated Lithuanian translation. + +2009-03-10 Claude Paroz + + * fr.po: Updated French translation. + +2009-03-09 David Planella + + * ca.po: Updated Catalan translation by David Planella. + +2009-03-08 Milo Casagrande + + * it.po: Updated Italian translation by Francesco Marletta. + +2009-03-06 Sandeep Shedmake + + * mr.po: Added Marathi Translations. + +2009-03-03 Gabor Kelemen + + * hu.po: Translation updated. + +2009-03-01 Og Maciel + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2009-02-24 Kenneth Nielsen + + * da.po: Updated Danish translation by Mads Lundby + +2009-02-20 Nickolay V. Shmyrev + + * ru.po: Updated Russian translation by Artem Popov. + +2009-02-17 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2009-02-15 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2009-02-13 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2009-02-11 Priit Laes + + * et.po: Translation updated by Mattias Põldaru + +2009-01-26 Gil Forcada + + * ca.po: Updated Catalan translation by David Planella. + +2008-12-16 Gabor Kelemen + + * hu.po: Translation updated. + +2008-12-07 Simos Xenitellis + + * el.po: Updated Greek translation by Evgenia Petoumenou. + +2008-11-29 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2008-11-25 Michael Biebl + + * de.po: Updated German translation by Christian Kirbach. + +2008-11-22 Mario Blättermann + + * de.po: Updated German translation by Hauke Mehrtens. + +2008-11-19 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2008-10-22 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-10-21 Og Maciel + + * pt_BR.po: Updated Brazilian Portuguese translation by + Fábio Nogueira and Vladimir Melo. + +2008-10-18 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-10-11 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-10-09 Raivis Dejus + + * fi.po: Added Latvian translation. + * LINGUAS: Added lv line. + +2008-10-04 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2008-10-01 Priit Laes + + * et.po: Translation updated by Mattias Põldaru + +2008-10-01 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-09-26 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2008-09-25 Claude Paroz + + * fr.po: Updated French translation. + +2008-09-25 Gabor Kelemen + + * hu.po: Translation updated. + +2008-09-25 Žygimantas Beručka + + * LINGUAS: Added "lt". + +2008-09-25 Žygimantas Beručka + + * lt.po: Added Lithuanian translation. + +2008-09-24 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-09-20 Luca Ferretti + + * it.po: Updated Italian translation by Francesco Marletta. + +2008-09-17 Petr Kovar + + * cs.po: Updated Czech translation by Jiri Eischmann. + +2008-09-15 Wouter Bolsterlee + + * nl.po: Updated Dutch translation by Wouter Bolsterlee. + +2008-09-14 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2008-09-09 Inaki Larranaga Murgoitio + + * eu.po: Updated Basque translation. + +2008-08-25 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-08-24 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2008-08-24 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2008-08-22 Tomasz Dominikowski + + * pl.po: Updated Polish translation + +2008-08-22 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2008-08-21 Runa Bhattacharjee + + * ps.po: Added Pashto Translations by Zabeeh Khan + * LINGUAS: Added Pashto to the List of Languages + +2008-08-18 Claude Paroz + + * fr.po: Updated French translation by Robert-André Mauchin. + +2008-08-14 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-08-14 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2008-08-08 Leonid Kanter + + ru.po: Updated Russian translation + +2008-08-02 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2008-07-31 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-07-31 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2008-07-25 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-07-20 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-07-11 Tambet Ingo + + * de.po: Fix typos (From Markus Becker ). + +2008-07-05 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-07-04 Leonardo Ferreira Fontenelle + + * pt_BR.po: Brazilian Portuguese translation updated by Henrique P + Machado. + +2008-06-28 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2008-06-25 Jonh Wendell + + * pt_BR.po: Updated Brazilian Portuguese translation by Henrique + Machado. + +2008-06-24 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2008-06-06 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2008-03-19 Gabor Kelemen + + * hu.po: Translation updated + +2008-03-10 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2008-03-09 Philip Withnall + + * en_GB.po: Updated British English translation. + +2008-02-28 Gil Forcada + + * ca.po: Updated Catalan translation. + +2008-02-20 Inaki Larranaga Murgoitio + + * LINGUAS: Added 'eu' (Basque) entry. + * eu.po: Added Basque translation. + +2008-01-19 Stéphane Raimbault + + * fr.po: Updated French translation by Robert-André Mauchin. + +2007-12-29 Changwoo Ryu + + * ko.po: Updated Korean translation by Namhyung Kim. + +2007-12-26 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-12-05 Jakub Friedl + + * LINGUAS: Added 'cs'. Bug #501019. + +2007-12-03 Jovan Naumovski + + * mk.po: Updated Macedonian translation. + +2007-12-03 Changwoo Ryu + + * LINGUAS: Added 'ko'. Bug #501020. + +2007-11-02 Priit Laes + + * et.po: Translation updated by Mattias Põldaru. + +2007-11-02 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-10-31 Gabor Kelemen + + * hu.po: Translation updated + +2007-10-28 Priit Laes + + * et.po: Translation updated by Priit Laes. + +2007-10-28 Priit Laes + + * et.po: Translation updated by Priit Laes. + +2007-10-26 Jorge Gonzalez + + * es.po: Updated Spanish translation. + +2007-09-23 Gil Forcada + + * ca.po: Updated Catalan translation. + +2007-09-15 Leonardo Ferreira Fontenelle + + * pt_BR.po: Brazilian Portuguese translation updated by Luiz Armesto + . + +2007-08-17 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-08-15 Kostas Papadimas + + * el.po: Updated Greek Translation + +2007-08-11 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-07-22 Satoru SATOH + + * ja.po: Updated Japanese translation. + +2007-06-19 Leonid Kanter + + * ru.po: Initial Russian translation + +2007-06-11 Artur Flinta + + * pl.po: Updated Polish translation by GNOME PL Team. + +2007-06-07 Jorge Gonzalez + + * es.po: Updated Spanish translation + +2007-04-29 David Lodge + + * en_GB.po: Updated British English translation + +2007-04-24 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-04-14 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-03-20 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-03-10 Hendrik Richter + + * de.po: Updated German translation, by + Thomas Gier + +2007-03-07 Vladimer Sichinava + + * ka.po: Updated Georgian translation by + Malkhaz Barkalaya + +2007-03-07 Alexander Shopov + + * bg.po: Updated Bulgarian translation by + Alexander Shopov + +2007-03-06 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-03-05 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation by + Gil Forcada . + +2007-03-04 Chao-Hsiung Liao + + * zh_HK.po: Updated Traditional Chinese translation(Hong Kong). + * zh_TW.po: Updated Traditional Chinese translation(Taiwan). + +2007-03-03 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2007-02-28 Stéphane Raimbault + + * fr.po: Updated French translation by Jonathan Ernst and Claude + Paroz. + +2007-02-28 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-02-28 Kjartan Maraas + + * nb.po: Updated Norwegian bokmål translation. + +2007-02-28 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2007-02-28 Leonardo Ferreira Fontenelle + + * pt_BR.po: Updated Brazilian Portuguese translation by Washington + Lins . + +2007-02-28 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2007-02-25 Priit Laes + + * et.po: Fixed header, added some translations. + +2007-02-25 Priit Laes + + * LINGUAS, et.po: Added Estonian translation by Ivar Smolin . + +2007-02-25 Gabor Kelemen + + * hu.po: Translation updated. + +2007-02-25 Changwoo Ryu + + * ko.po: Updated Korean translation by Young-Ho Cha. + +2007-02-21 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2007-02-19 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-02-18 Artur Flinta + + * pl.po: Updated Polish translation by GNOME PL Team. + +2007-02-16 Maxim Dziumanenko + + * uk.po: Add Ukrainian translation. + * LINGUAS: Add uk to list. + +2007-02-13 Lasse Bang Mikkelsen + + * da.po: Updated Danish translation. + +2007-02-12 Ignacio Casal Quinteiro + + * gl.po: Updated Galician Translation. + +2007-02-11 Stéphane Raimbault + + * fr.po: Updated French translation by Jonathan Ernst and Stéphane + Raimbault. + +2007-02-9 Djihed Afifi + + * ar.po: Updated Arabic Translation by Khaled Hosny. + +2007-02-09 David Lodge + + * en_GB.po: Updated English (British) translation + +2007-02-08 Duarte Loreto + + * pt.po: Added Portuguese translation. + * LINGUAS: Added Portuguese (pt). + +2007-02-8 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-02-08 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation. + +2007-02-04 A S Alam + + * pa.po: Punjabi Translation is added + * LINGUAS: pa is added to list + +2007-02-04 Changwoo Ryu + + * ko.po: Added Korean translation by Young-Ho Cha. + +2007-02-02 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-02-02 Alexander Shopov + + * bg.po: Added Bulgarian translation by + Alexander Shopov + * LINGUAS: Added "bg" (Bulgarian). + +2007-02-01 Chao-Hsiung Liao + + * zh_HK.po: Added Traditional Chinese translation(Hong Kong). + * zh_TW.po: Added Traditional Chinese translation(Taiwan). + +2007-01-31 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2007-01-30 Ignacio Casal Quinteiro + + * gl.po: Added Galician Language. + * LINGUAS: Added 'gl' + +2007-01-30 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-01-29 Theppitak Karoonboonyanan + + * th.po: Updated Thai translation. + +2007-01-23 Theppitak Karoonboonyanan + + * th.po: Added Thai translation by + Supranee Thirawatthanasuk and me. + * LINGUAS: Added 'th'. + +2007-01-21 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation by + Gil Forcada + +2007-01-13 Raphael Higino + + * pt_BR.po: Updated Brazilian Portuguese translation. + +2007-01-13 Kostas Papadimas + + * el.po: Added Greek Translation + * LINGUAS: Added el to the list + +2007-01-13 Djihed Afifi + + * ar.po: Updated Arabic Translation by Djihed Afifi. + +2007-01-12 Jovan Naumovski + + * mk.po: Added Macedonian translaion. + * LINGUAS: Added mk to the list + +2007-01-10 Matic Zgur + + * sl.po: Added Slovenian translation. + * LINGUAS: Added sl to the list of languages + +2007-01-05 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2007-01-01 David Lodge + + * en_GB.po: Updated English (British) translation + +2006-12-29 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-12-28 David Lodge + + * en_GB.po: Updated English (British) translation + +2006-12-28 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2006-12-10 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-12-09 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-11-18 Djihed Afifi + + * ar.po: Added Arabic Translation. + * LINGUAS: Added ar. + +2006-11-02 Pema Geyleg + + * LINGUAS: Added "dz". + * dz.po: Added Dzongkha Translation. + +2006-10-30 Kjartan Maraas + + * LINGUAS: Add nb. + * nb.po: Commit this. + +2006-10-21 Gabor Kelemen + + * hu.po: Translation updated. + +2006-09-30 Alessio Frusciante + + * it.po: Added Italian translation by + Francesco Marletta . + * LINGUAS: Added "it" (Italian). + +2006-09-14 David Lodge + + * en_GB.po: Updated English (British) translation + * LINGUAS: Added en_GB + +2006-09-03 Josep Puigdemont i Casamajó + + * ca.po: Updated Catalan translation by + Gil Forcada . + +2006-09-02 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-08-21 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-08-19 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2006-08-16 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-08-16 Gabor Kelemen + + * hu.po: Translation updated. + +2006-08-16 Gabor Kelemen + + * hu.po: Translation updated. + +2006-08-03 Jakub Friedl + + * cs.po: Updated Czech translation. + +2006-07-28 Christophe Merlet + + * fr.po: Added French translation from + Haïkel GUÉMAR . + +2006-06-19 Satoru SATOH + + * ja.po: Added Japanese translation. + +2006-06-17 Marcel Telka + + * sk.po: Added Slovak translation. + +2006-06-13 Jakub Friedl + + * cs.po: Added Czech translation. + +2006-06-13 Wouter Bolsterlee + + * nl.po: Translation updated by Tino Meinen. + +2006-06-05 Gabor Kelemen + + * hu.po: Translation added. + +2006-05-26 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-05-14 Daniel Nylander + + * sv.po Updated Swedish Translation. + +2006-05-12 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-05-06 Ilkka Tuohela + + * fi.po: Updated Finnish translation. + +2006-04-20 Vincent van Adrighem + + * nl.po: Translation updated by Tino Meinen. + +2006-04-12 Daniel Nylander + + * sv.po: Updated Swedish translation. + +2006-04-11 Clytie Siddall + + * vi.po: Updated Vietnamese translation. + +2006-04-06 Vincent van Adrighem + + * nl.po: Translation added by Tino Meinen. + +2006-03-29 Christian Rose + + * sv.po: Updated Swedish translation. + +2006-03-23 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-03-02 Raphael Higino + + * pt_BR.po: Added Brazilian Portuguese translation. + +2006-02-28 Ilkka Tuohela + + * fi.po: Added Finnish translation. + +2006-02-16 Francisco Javier F. Serrador + + * es.po: Updated Spanish translation. + +2006-02-08 Clytie Siddall + + * vi.po: Added Vietnamese translation. + +2006-02-04 Funda Wang + + * zh_CN.po: Added Simplified Chinese translation. + +2006-01-20 Lasse Bang Mikkelsen + + * da.po: Updated Danish translation. + +2006-01-18 Lasse Bang Mikkelsen + + * da.po: Updated Danish translation. + +2005-06-17 David Zeuthen + + * POTFILES.in: Added nm-vpnc.desktop.in + + * da.po: Updated danish translations + +2005-06-16 David Zeuthen + + * da.po: Updated danish translations + diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..b1254f8 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,60 @@ +# please keep this list sorted alphabetically +# +ar +as +be +bg +bs +ca +ca@valencia +cs +da +de +dz +el +en_GB +eo +es +et +eu +fa +fi +fr +gl +gu +he +hu +id +it +ja +ka +kn +ko +lt +lv +mk +mr +nb +nl +pa +pl +ps +pt +pt_BR +ro +ru +sk +sl +sr +sr@latin +sv +ta +te +th +tr +ug +uk +vi +zh_CN +zh_HK +zh_TW diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..133d9b4 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,14 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +appdata/network-manager-openvpn.metainfo.xml.in +auth-dialog/main.c +properties/auth-helpers.c +properties/import-export.c +properties/nm-openvpn-editor-plugin.c +properties/nm-openvpn-editor.c +shared/nm-utils/nm-shared-utils.c +shared/nm-utils/nm-vpn-plugin-utils.c +shared/utils.c +src/nm-openvpn-service.c +src/nm-openvpn-service-openvpn-helper.c +[type: gettext/glade]properties/nm-openvpn-dialog.ui diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..4c49714 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,1092 @@ +# translation of NetworkManager-openvpn.HEAD.ar.po to Arabic +# Arabic translations for PACKAGE package. +# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Automatically generated, 2006. +# Khaled Hosny , 2007. +msgid "" +msgstr "" +"Project-Id-Version: Project\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2007-12-26 09:06+0100\n" +"Last-Translator: Djihed Afifi \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n>=3 && " +"n<=10 ? 2 : 3\n" +"X-Poedit-Language: Arabic\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "وثِّق VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_كلمة السر:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "كلمة سر الشهادة:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "وثِّق VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "كلمة سر ال_شهادة:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "تحتاج إلى التوثيق لتَنفُذ إلى الشبكة الخاصة التخيلية '%s'." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "مدير اتصالت VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "أضِف، احذِف، و حرِّر اتصالات VPN" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +#, fuzzy +msgid "None" +msgstr "لا" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +#, fuzzy +msgid "Default" +msgstr "(افتراضي: 1194)" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "عميل OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "ش_هادة:" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "كلمة السّر" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "اعدادات OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +#, fuzzy +msgid "General" +msgstr "مطلوب" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "منفذ ال_بوّابة:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +#, fuzzy +msgid "Authentication" +msgstr "اسم الإتصال" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_كلمة السر:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "مفتاح مشترَك:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "مفتاح مشترَك:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "ش_هادة:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "ش_هادة:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "ا_سم المستخدم:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "IP الآخر:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "IP م_حلّي: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "الإتجاه:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "مفتاح مشترَك:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +#, fuzzy +msgid "Ad_vanced..." +msgstr "مت_قدم" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "خيارات OpenVPN متقدمة" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "منفذ ال_بوّابة:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "استعمل _ضغط LZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "ا_ستعمل ضغط LZO: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "استخدم ات_صال TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "شيفرة: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +#, fuzzy +msgid "_HMAC Authentication:" +msgstr "اسم الإتصال" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "الإتجاه:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "اسم الإتصال" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "ميناء: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ا_سم المستخدم:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_كلمة السر:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_كلمة السر:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "اعدادات OpenVPN" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "_نوع الإتصال:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +msgid "Unknown connection type '%s'." +msgstr "_نوع الإتصال:" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "فشل ولوج VPN لأن خيارات اعدادات VPN غير صالحة." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "كلمة سر _ثانوية:" + +#~ msgid "_Domain:" +#~ msgstr "ال_نطاق:" + +#~ msgid "Connect _anonymously" +#~ msgstr "اتّصل كم_جهول" + +#~ msgid "Connect as _user:" +#~ msgstr "اتصل _كمستخدم:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_تذكّر كلمة السر لهذه الجلسة" + +#~ msgid "_Save password in keyring" +#~ msgstr "ا_حفظ كلمة السر في حلقة المفاتيح" + +#, fuzzy +#~ msgid "Use a TA_P device" +#~ msgstr "ا_ستخدم جهاز TAP" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "ستُنشأ اتصالات OpenVPN التالية:" + +#~ msgid "Name: %s" +#~ msgstr "الإسم: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "نوع الإتصال: X.509 Certificates" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "شهادة: %s" + +#~ msgid "Key: %s" +#~ msgstr "مفتاح: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "نوع الإتصال: مفتاح مشترَك" + +#~ msgid "Shared Key: %s" +#~ msgstr "مفتاح مشترَك: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP بعيد: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "نوع الإتصال: كلمة سّر" + +#~ msgid "Username: %s" +#~ msgstr "اسم المستخدم: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "نوع الإتصال: X.509 مع توثق عبر كلمة سر" + +#~ msgid "Remote: %s" +#~ msgstr "عن بعد: %s" + +#~ msgid "Device: %s" +#~ msgstr "الجهاز: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "البروتوكول: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "المسارات: %s" + +#~ msgid "Yes" +#~ msgstr "نعم" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "توثيق TLS: %s %s " + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "يمكن تغيير تفاصيل الإتصال باستخدام زر \"حرِّر\"." + +#~ msgid "Cannot import settings" +#~ msgstr "تعذّر استيراد الإعدادات" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "لا يحتوي ملف اعدادات VPN '%s' على بيانات صالحة." + +#~ msgid "Select file to import" +#~ msgstr "انتقِ ملفّ للإستيراد" + +#~ msgid "Select CA to use" +#~ msgstr "انتقِ CA ليُستخدم" + +#~ msgid "Select certificate to use" +#~ msgstr "انتقِ شهادة لتُستخدم" + +#~ msgid "Select key to use" +#~ msgstr "انتقِ مفتاحا ليُستخدم" + +#~ msgid "Select shared key to use" +#~ msgstr "انتقِ مفتاحا مُشارَكا ليُستخدم" + +#~ msgid "Select TA to use" +#~ msgstr "انتقِ TA ليُستخدم" + +#~ msgid "Save as..." +#~ msgstr "احفظ كـ..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "يوجد ملف بالإسم \"%s\" مسبقاً." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "أتريد استبداله بالملف الذي تقوم بحفظه؟" + +#~ msgid "Failed to export configuration" +#~ msgstr "فشل تصدير الإعدادات" + +#~ msgid "Failed to save file %s" +#~ msgstr "فشل حفظ الملف %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "مثال: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "_ملفّ CA:" + +#~ msgid "Connection na_me:" +#~ msgstr "ا_سم الإتصال:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "ا_ستورد اعدادات محفوظة..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "الإ_سم المستخدم لتعريف الإتصال للشبكة الخاصة، مثلا: \"Campus VPN\" أو " +#~ "\"Corporate Network\"" + +#~ msgid "Network" +#~ msgstr "شبكة" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "استخدم _فقط اتصالات VPN لهذه العناوين:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "من فضلك أدخل المعلومات التي وفرها مدير نظامك بأسفل. لا تدخل كلمة السر هنا " +#~ "حيث أنك ستسأل عنها عند الإتصال." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "من فضلك لا حظ أن الملف الذي استوردته ليس ملف إعدادات OpenVPN. اسأل مدير " +#~ "نظامك عن الملف." + +#~ msgid "Shared _key:" +#~ msgstr "مف_تاح مشترَك:" + +#~ msgid "TLS-Auth" +#~ msgstr "TLS-Auth" + +#~ msgid "Use _TLS auth:" +#~ msgstr "اس_تخدم توثيق TLS:" + +#~ msgid "Use cip_her:" +#~ msgstr "استخدم _شيفرة:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "شهادات X.509\n" +#~ "مفتاح قبل المُشاركة\n" +#~ "توثيق بكلمة سر\n" +#~ "X.509 مع توثيق بكلمة سر" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "عنوان ال_بوّابة:" + +#~ msgid "_Key:" +#~ msgstr "م_فتاح:" + +#~ msgid "_Local IP:" +#~ msgstr "IP م_حلًي:" + +#~ msgid "_none" +#~ msgstr "لا _شيء" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "فشل ولوج VPN لأن اسم المستخدم أو كلمة السر لم تُقبل أو أن كلمة سر الشهادة " +#~ "كانت خطأ." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "فشل ولوج VPN لأن برنامج VPN لا يمكن بدأه." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "فشل ولوج VPN لأن برنامج VPN لا يمكنه الإتصال بخادم VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "فشل ولوج VPN لأن برنامج VPN لم يتلقى اعدادات صالحة من خادم VPN." + +#~ msgid "VPN connection failed" +#~ msgstr "فشل اتصال VPN" + +#~ msgid "Connection Information" +#~ msgstr "معلومات الإتصال" + +#~ msgid "Username:" +#~ msgstr "اسم المستخدم:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/Pass" + +#~ msgid "CA file:" +#~ msgstr "ملفّ CA:" + +#~ msgid "Optional" +#~ msgstr "خياري" diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..d3daf49 --- /dev/null +++ b/po/as.po @@ -0,0 +1,853 @@ +# translation of as.po to Assamese +# Assamese translation of network-manager-openvpn. +# Copyright (C) 2009 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Amitakhya Phukan , 2009. +msgid "" +msgstr "" +"Project-Id-Version: as\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-07-16 15:11+0530\n" +"Last-Translator: Amitakhya Phukan \n" +"Language-Team: Assamese \n" +"Language: as\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN প্ৰমাণীকৰণ কৰক" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "গুপ্তশব্দ:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "প্ৰমাণপত্ৰৰ গুপ্তশব্দ:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN প্ৰমাণীকৰণ কৰক" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "প্ৰমাণপত্ৰৰ গুপ্তশব্দ (_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Virtual Private Network '%s' অভিগম কৰিবলৈ আপুনি প্ৰমাণীকৰণ কৰিব লাগিব ।" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "আপোনাৰ ব্যক্তিগত প্ৰমাণপত্ৰ বাচি লওক..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "আপোনাৰ ব্যক্তিগত চাবি বাচি লওক..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "এটা প্ৰমাণপত্ৰৰ অধিকাৰীৰ প্ৰমাণপত্ৰ বাচি লওক..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "এটা OpenVPN স্টেটিক চাবি বাচি লওক..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "একো নাই" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM প্ৰমাণপত্ৰ (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM প্ৰমাণপত্ৰ (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN স্টেটিক চাবি সমূহ (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "অবিকল্পিত" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN সেৱকৰ সৈতে সুসঙ্গত ।" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "প্ৰমাণপত্ৰসমূহ (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "গুপ্তশব্দ" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "প্ৰমাণপত্ৰসমূহৰ সৈতে গুপ্তশব্দ (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "স্টেটিক চাবি" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "সাধাৰণ" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "গেটৱে (_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "প্ৰমাণীকৰণ" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "গুপ্তশব্দ দেখুৱাওক" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "আপোনাৰ ব্যক্তিগত চাবি বাচি লওক..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "ব্যক্তিগত চাবিৰ গুপ্তশব্দ:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "ব্যক্তিগত চাবি:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA প্ৰমাণপত্ৰ:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "ব্যৱহাৰকৰ্তাৰ প্ৰমাণপত্ৰ:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "ব্যৱহাৰকৰ্তাৰ নাম:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "দূৰৰ IP ঠিকনা:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "স্থানীয় IP ঠিকনা:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "চাবিৰ দিশ:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "স্টেটিক চাবি:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"চাবিৰ দিশ ব্যৱহাৰ কৰিলে, সেইটো VPN পিয়েৰত থকাটোতকৈ বিপৰিত দিশৰ হ'ব লাগিব । " +"যেনে, যদি পিয়েৰে '1' ব্যৱহাৰ কৰে, এই সংযোগে '0' ব্যৱহাৰ কৰিব লাগিব । ব্যৱহাৰ " +"কৰিব লগা মানৰ বিষয়ে নিশ্চিত ন'হ'লে, আপোনাৰ ব্যৱস্থাপ্ৰণালীৰ প্ৰশাসকক লগ ধৰক ।" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "ধৰণ:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS প্ৰমাণীকৰণ" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "উন্নত (_v)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN উন্নত বিকল্প" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "নিজৰ পছন্দৰ গেটৱে প'ৰ্ট ব্যৱহাৰ কৰক (_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "LZO তথ্য সঙ্কোচন ব্যৱহাৰ কৰক (_Z)" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "এটা TCP সংযোগ ব্যৱহৰ কৰক (_T)" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "সাধাৰণ" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Cipher:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC প্ৰমাণীকৰণ:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "সুৰক্ষা" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "অতিৰিক্ত TLS প্ৰমাণীকৰণ ব্যৱহাৰ কৰক" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "অতিৰিক্ত TLS প্ৰমাণীকৰণ ব্যৱহাৰ কৰক" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "চাবিৰ দিশ:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"চাবিৰ দিশ ব্যৱহাৰ কৰিলে, সেইটো VPN পিয়েৰত থকাটোতকৈ বিপৰিত দিশৰ হ'ব লাগিব । " +"যেনে, যদি পিয়েৰে '1' ব্যৱহাৰ কৰে, এই সংযোগে '0' ব্যৱহাৰ কৰিব লাগিব । ব্যৱহাৰ " +"কৰিব লগা মানৰ বিষয়ে নিশ্চিত ন'হ'লে, আপোনাৰ ব্যৱস্থাপ্ৰণালীৰ প্ৰশাসকক লগ ধৰক ।" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "চাবিৰ নথিপত্ৰ:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS প্ৰমাণীকৰণ" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "দূৰৰ IP ঠিকনা:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ব্যৱহাৰকৰ্তাৰ নাম (_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "গুপ্তশব্দ:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "গুপ্তশব্দ দেখুৱাওক" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "ব্যক্তিগত চাবিৰ গুপ্তশব্দ:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "অতিৰিক্ত TLS প্ৰমাণীকৰণ ব্যৱহাৰ কৰক" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "গুপ্তশব্দ (_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "দ্বিতীয় গুপ্তশব্দ (_S):" + +#~ msgid "_Domain:" +#~ msgstr "ডোমেইন (_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "বেনামী হিচাপে সংযোগ কৰক (_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "ব্যৱহাৰকৰ্তা হিচাপে সংযোগ কৰক (_u):" + +#~ msgid "_Remember password for this session" +#~ msgstr "এই অধিবেশনৰ কাৰণে গুপ্তশব্দ মনত ৰাখক (_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "কিৰিঙত গুপ্তশব্দ ৰাখক (_S)" + +#~ msgid "Use a TA_P device" +#~ msgstr "TAP যন্ত্ৰ ব্যৱহাৰ কৰক (_P)" diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..6c8516a --- /dev/null +++ b/po/be.po @@ -0,0 +1,855 @@ +# Yuri Matsuk , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-09-11 17:34+0300\n" +"Last-Translator: Yuri Matsuk \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: UTF-8\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Ідэнтыфікацыя VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Пароль:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Пароль да сертыфіката:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Ідэнтыфікацыя VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_Пароль да сертыфіката:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Каб даступіцца да віртуальнай прыватнай сеткі \"%s\", патрэбна ідэнтыфікацыя." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Выберыце свой асабісты сертыфікат..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Выберыце свой прыватны ключ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Захаваны" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Заўсёды пытацца" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Не патрабуецца" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Выберыце сертыфікат цэнтра сертыфікацыі..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Выберыце статычны ключ OpenVPN..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Нічога" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Сертыфікаты PEM або PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Сертыфікаты PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Статычныя ключы OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Прадвызначаны" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Не патрабуецца" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Сумяшчальны з серверам OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Сертыфікаты (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Пароль" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Пароль з сертыфікатамі (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Статычны ключ" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Не ўдалося знайсці двайковы файл \"openvpn\"." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Няма опцый настройкі VPN." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Агульнае" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "Сеткавая _брама:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Ідэнтыфікацыя" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Паказваць паролі" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Выберыце свой прыватны ключ..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Пароль да прыватнага ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Прыватны ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Сертыфікат цэнтра (CA):" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Сертыфікат карыстальніка:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Імя карыстальніка:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Аддалены IP-адрас:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Мясцовы IP-адрас:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Кірунак ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Статычны ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Калі выкарыстоўваецца кірунак ключа, ён павінен быць супрацьлеглы " +"кірунку, які выкарыстоўваецца з другога боку злучэння. Напрыклад, калі з " +"другога боку выкарыстоўваецца \"1\", то гэта злучэнне павінна выкарыстоўваць " +"\"0\". Калі вы не ўпэўнены, якое значэнне выкарыстаць, звярніцеся да " +"сістэмнага адміністратара." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Тып:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS-ідэнтыфікацыя" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Адмысловыя настройкі..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Адмысловыя опцыі OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Выкарыстоўваць уласны порт сеткавай _брамы:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "_Выкарыстоўваць уласны інтэрвал перагляду ўмоў сеанса:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Выкарыстоўваць LZO-_сцісканне" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Выкарыстоўваць TCP-_злучэнне" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Выкарыстоўваць уласны _максімальны памер элемента перадачы тунэлем (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Выкарыстоўваць у_ласны памер UDP-фрагмента:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Абмежаваць максімальны памер TCP-сегмента тунэля (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Агульнае" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Шыфр:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC-ідэнтыфікацыя:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Бяспека" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Адпаведнасць атрымальніка:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Злучацца толькі з серверамі, чые сертыфікаты маюць адпаведнае значэнне ў " +"графе атрымальніка.\n" +"Напрыклад: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Выкарыстоўваць дадатковую TLS-ідэнтыфікацыю" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Выкарыстоўваць дадатковую TLS-ідэнтыфікацыю" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Кірунак ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Калі выкарыстоўваецца кірунак ключа, ён павінен быць супрацьлеглы " +"кірунку, які выкарыстоўваецца з другога боку злучэння. Напрыклад, калі з " +"другога боку выкарыстоўваецца \"1\", то гэта злучэнне павінна выкарыстоўваць " +"\"0\". Калі вы не ўпэўнены, якое значэнне выкарыстаць, звярніцеся да " +"сістэмнага адміністратара." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Файл ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS-ідэнтыфікацыя" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Тып проксі-сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Выберыце гэтую опцыю, калі ваша ўстанова патрабуе выкарыстоўваць проксі-" +"сервер для доступу да Інтэрнэту." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Адрас сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Порт:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "Пры памылках паўтараць бясконца" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Імя карыстальніка на проксі-серверы:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Пароль да проксі-сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Паказваць пароль" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Проксі-серверы" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "хібны адрас \"%s\"" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" +"хібная цэлалікавая ўласцівасць \"%s\", або значэнне па-за дыяпазонам [%d -> " +"%d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "хібная булева ўласцівасць \"%s\" (мусіць быць: yes/no)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "неапрацаваная ўласцівасць \"%s\" з тыпам %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "хібная ўласцівасць \"%s\", або яна не падтрымліваецца" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Няма опцый настройкі VPN." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Пароль да прыватнага ключа:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Не ўдалося знайсці двайковы файл \"openvpn\"." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Хібная HMAC-ідэнтыфікацыя." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Хібны тып злучэння." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Хібны нумар порта \"%s\"." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Хібны тып проксі-сервера \"%s\"." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Хібны тып проксі-сервера \"%s\"." + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "Хібны памер фрагмента \"%s\"." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Хібная колькасць секундаў \"%s\" для перагляду ўмоў сеанса." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Хібны памер TUN MTU \"%s\"." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Хібны памер фрагмента \"%s\"." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Адсутнічае патрэбны мясцовы IP-адрас для рэжыму са статычным ключом." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Адсутнічае патрэбны аддалены IP-адрас для рэжыму са статычным ключом." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Невядомы тып злучэння \"%s\"." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Не ўдалося апрацаваць запыт, таму што настройкі VPN-злучэння былі хібныя." + +#: ../src/nm-openvpn-service.c:1391 +#, fuzzy +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Не ўдалося апрацаваць запыт, таму што настройкі VPN-злучэння былі хібныя." + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Выкарыстоўваць дадатковую TLS-ідэнтыфікацыю" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Не заканчваць працу пры разрыве VPN-злучэння" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Уключыць падрабязнае адладачнае журналіраванне (гэта можа выявіць паролі)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "nm-openvpn-service забяспечвае інтэграцыю OpenVPN з NetworkManager." + +#~ msgid "_Password:" +#~ msgstr "_Пароль:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Дадатковы пароль:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "_Паказваць паролі" + +#~ msgid "Use a TA_P device" +#~ msgstr "Выкарыстоўваць TAP-_прыстасаванне" + +#~ msgid "No VPN secrets!" +#~ msgstr "Няма сакрэтных ключоў VPN!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "Не ўдалося апрацаваць запыт, таму што не было пададзена імя карыстальніка." diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..594fdc9 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,856 @@ +# Bulgarian translation of network-manager-openvpn po-file +# Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the network-manager-openvpn package. +# Alexander Shopov , 2007, 2008, 2010. +# Krasimir Chonov , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2010-10-02 10:52+0300\n" +"Last-Translator: Krasimir Chonov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Идентифициране пред ВЧМ" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Парола:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Парола за сертификата:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Идентифициране пред ВЧМ" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Парола за _сертификата:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Трябва да се идентифицирате, за да ползвате ВЧМ „%s“." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Изберете личния си сертификат…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Изберете личния си ключ…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "Не е задължително" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Изберете сертификата на сертифициращата организация…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Изберете статичния ключ на OpenVPN…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Няма" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" +"Сертификати във формат PEM или PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Сертификати във формат PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Статични ключове за OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Стандартно" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Не е задължително" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Съвместим със сървърите за OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Сертификати (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Парола" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Парола със сертификати (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Статичен ключ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Общи" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Шлюз:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Идентификация" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Показване на паролите" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Изберете личния си ключ…" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Частен ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Частен ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Сертификат на сертифициращата организация:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Потребителски сертификат:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Потребителско име:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Отдалечен адрес:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Локален адрес:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Посока на ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Статичен ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Ако се използва посока на ключа, тя трябва да е обратната на използваната " +"от отсрещната страна по ВЧМ. Например — ако тя ползва „1“, тази връзка " +"трябва да ползва „0“. Ако не сте сигурни, попитайте системния си " +"администратор." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Вид:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "Идентификация с TSL" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Допълнителни…" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Допълнителни настройки на OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "_Потребителски порт на шлюза:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "_Различен интервал на предоговаряне:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Използване на _компресия LZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Използване на _връзка по TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Различен _максимален размер на пакета (MTU) за тунела:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Различен размер на _фрагментите на UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ограничаване на максималния размер на сегментите (MSS) по TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Общи" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Шифър:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Идентификация с HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Сигурност" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Съвпадане на темата:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Свързване само към сървъри, чийто сертификат съвпада с указаната тема.\n" +"Пример: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Използване на допълнителна идентификация с TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Използване на допълнителна идентификация с TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Посока на ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Ако се използва посока на ключа, тя трябва да е обратната на използваната " +"от отсрещната страна по ВЧМ. Например — ако тя ползва „1“, тази връзка " +"трябва да ползва „0“. Ако не сте сигурни, попитайте системния си " +"администратор." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Файл-ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Идентификация с TSL" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Вид посредник:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Изберете тази настройка, ако организацията, в която се намирате, ви " +"задължава да използвате сървър-посредник за връзката ви към Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Адрес на сървъра:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Порт:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "При появата на грешка да се повтаря до безкрай" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Потребителско _име за посредника:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Парола за посредника:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "Показване на паролите" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Посредници" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Частен ключ:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Използване на допълнителна идентификация с TLS" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Парола:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Втора парола:" + +#~ msgid "_Username:" +#~ msgstr "Потребителско _име:" + +#~ msgid "_Domain:" +#~ msgstr "_Домейн:" + +#~ msgid "Connect _anonymously" +#~ msgstr "_Анонимно свързване" + +#~ msgid "Connect as _user:" +#~ msgstr "Свързване _като потребителя:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Запомняне на паролата за тази сесия" + +#~ msgid "_Save password in keyring" +#~ msgstr "Запазване на паролата в клю_чодържателя" + +#~ msgid "Use a TA_P device" +#~ msgstr "Използване на _устройство TAP" diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..bb857c3 --- /dev/null +++ b/po/bs.po @@ -0,0 +1,900 @@ +# Bosnian translation for bosnianuniversetranslation +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the bosnianuniversetranslation package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: bosnianuniversetranslation\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2015-02-26 23:32+0000\n" +"PO-Revision-Date: 2015-03-02 14:49+0100\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2015-02-05 06:51+0000\n" +"X-Generator: Poedit 1.7.4\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autentificiraj VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Lozinka:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Potvrdite lozinku:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentificiraj VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Potvrdite loz_inku:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Trebate provjeriti autentičnost za pristup virtuelnoj privatnoj mreži '%s'." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN menadžer za konekcije (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Dodaj, ukloni, i uredi VPN konekcije" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Izaberite vaš lični certifikat..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Izaberite vaš privatni ključ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Snimljeno" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Uvijek pitaj" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Nije potrebno" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Izaberite certifikat potvrđivanja autoriteta..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Izaberi OpenVPN statični ključ..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Ništa" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM ili PKCS#12 certifikati (*.pijem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM certifikati (*.pijem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN statični ključevi (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Podrazumijevano" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Klijent" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Nije potrebno" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface nami is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "(automatski)" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "Datoteka za uvoz nije važeća OpenVPN konfiguracija klijenta." + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "Datoteka za uvoz nije važeća OpenVPN konfiguracija (nema udaljenog)" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "Ne mogu otvoriti datoteku za pisanje!" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "konekcija je bila nekompletna (nedostaje izlaz)" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibilno sa OpenVPN serverom." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certifikati (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Lozinka" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Lozinka sa certifikatom (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Statični ključ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "Nemoguće kreirati openvpn objekat." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "nije moguće učitati kontrolu korisničkog interfejsa" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "nepoznata OpenVPN ekstenzija datoteke" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "Nema ispravne OpenVPN konfiguracijske datoteke." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Generalno" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Mrežni izlaz:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Daljinski gateway (a), s dodatnom luku i protokolom (npr ovpn.corp.com:1234:" +"tcp). Možete navesti više domaćina za otpremnine (koristiti zareze ili " +"prostore kao razdvojnike).\n" +"config: daljinski" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentifikacija" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Prikaži _lozinke" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Lozinka za privatni ključ" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Lozinka privatnog ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Privatni ključ lokalnog piljenja u .pijem formatu.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Privatni ključ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Autoritet certifikata (CA) datoteka u .pijem formatu.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA Certifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certifikat korisnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Potpisani certifikati lokalnog piljenja u .pijem formatu (potpisan od CA sa " +"CA certifikata).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Lozinka prošla do OpenVPN kada je zatražena.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Korisničko ime:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Korisničko ime prošlo do OpenVPN kada je zatraženo.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adresa lokalne završne tačke VPN-a.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Daljinska IP adresa:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Lokalna IP adresa:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adresa za daljinsku završnu tačku VPN-a.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Smjer ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Statični ključ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Datoteka koja je već podijeljena za način šifrovanja statičnog ključa (ne-" +"TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Usmjerenje za režim šifrovanja statičkog ključa (ne-TLS).\n" +"Ako koristite usmjerenje ključa, mora biti suprotno od onog korišćenog na " +"VPN parnjaku. Na primjer, ako parnjak koristi „1“, ova veza mora da koristi " +"„0“. Ako niste sigurni koju vrijednost da koristite, posavejtujte se sa " +"administratorom sistema.\n" +"podešavanje: „static [usmerenje]“" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tip:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Odaberi način autentifikacije." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Na_predno..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN napredne postavke" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Koristi prilagođeni izlazni _port:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"TCP/UDP broj porta za lokalnog parnjaka.\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Koristi p_rilagođeni intreval za ponovno pregovaranje:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Ponovo pregovaraj ključ kanala podataka nakon određenog broja sekundi.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Koristi L_ZO kompresiju podataka" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Koristi brzu LZO kompresiju.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Koristi _TCP konekciju" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Koristi TCP za komuniciranje s daljinskim domaćinom.\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "Postavite virtualni _uređaj Vrsta:" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Izričito postavljai virtualnu vrstu uređaja i ime (TUN / TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Izričito postaviti virtualni tip uređaja (TUN / TAP).\n" +"config: dev-tipa Tun | slavina" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr " i _ime:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Koristite prilagođeni naziv za TUN / TAP virtualnom uređaju (umjesto " +"podrazumjevani \"Tun\" ili \"slavinu\").\n" +"Config: div " + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Koristi prilagođeni tunel Maksimalna Jedinica Prijenosa (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Koristi TUN uređaj MTU da bude specifična vrijednost i deriviraj vezu MTU od " +"njega.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Koristi prilagođenu UDP veličinu _fragmenta:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Dopusti internu datagram fragmentaciju sa maksimalnom veličinom.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ograničiti maksimalnu veličinu _Segmenta TCP tunela (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Ograniči tunel TCP MSS.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Mije_šaj daljinske domaćine" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Miješaj redoslijed liste izlaza (daljinska) poput osnovne mjere balansiranja " +"učitavanja.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Generalno" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifriraj pakete sa šifarnim algoritmom. Zadano je BF-CBC (Blowfish in Cipher " +"Block Chaining mode).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Koristi prilagođenu veličinu šifarnog ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Postavi veličinu šifarnog ključa na prilagođenu vrijednost. Ako nije " +"specificirano, postavlja se na zadanu veličinu specifičnu za šifre.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentificiraj pakete sa HMAC koristeći algoritam klasifikovanja poruka. " +"Zadano je SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Ši_fra:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "_HMAC Autentifikacija:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Sigurnost" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "_Poklapanje predmeta:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Spoji se samo na servere čiji se certifikat poklapa s danim predmetom.\n" +"Primjer: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Prihvati konekcije samo od domaćina sa X509 imenom ili običnim imenom slično " +"specificiranom.\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verifikuj piljenje (server) certifikata za korištenje potpisa" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Zahtijeva da je certifikat piljenja potpisan sa eksplicitnim korištenjem " +"ključa i produženom upotrebom ključa bazirano na RFC3280 TLS pravilima." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "_Daljinski certifikat za piljenje TLS tipa:" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Zahtijeva da je certifikat piljenja potpisan sa eksplicitnim korištenjem " +"ključa i produženom upotrebom ključa bazirano na RFC3280 TLS pravilima.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Koristi dodatnu _TLS ovjeru" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Dodaj dodatni sloj HMAC ovjere." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "_Direkcija ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Dodaj dodatni sloj HMAC ovjere na vrhu TLS kontrolnog kanala da zaštiti " +"protiv DoS napada.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parametri usmjerenja za režim statičkog ključa.\n" +"Ako koristite usmjerenje ključa, mora biti suprotno od onog korišćenog na " +"VPN parnjaku. Na primjer, ako parnjak koristi „1“, ova veza mora da koristi " +"„0“. Ako niste sigurni koju vrijednost da koristite, posavejtujte se sa " +"administratorom sistema.\n" +"podešavanje: „tls-auth [usmerenje]“" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Ključna _Datoteka:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS ovjera" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxy tip: HTTP ili Socks.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Proxy _Tip:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Odaberi ovu opciju ako vaša organizacija zahtijeva korištenje proxy " +"servera za pristup internetu" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "_Adresa servera:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Spoji se na daljinskog domaćina kroz proxy sa ovom adresom.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Spoji se na daljinskog domaćina kroz proxy sa ovom adresom.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Pokušavaj neodređen broj puta kada se pojavi greška" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Pokušavaj neodređen broj puta na proxy greškama. To simulira SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "_Korisničko Ime za Proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Proxy _Lozinka:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/Socks korisničnko ime za proxy prošlo do OpenVPN kada je zatraženo." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks lozinka za proxy prošla do OpenVPN kada je zatražena." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "_Prikaži lozinku" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Posrednici" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "neispravna adresa '%s'" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "neispravno svojstvo cijelog broja '%s' ili izvan opsega [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "neispravno Booleovo svojstvo '%s' (nije da ili ne)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "neobrađeno svojstvo '%s' tipa %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "svojstvo '%s' nevažeće ili nije podržano" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Nema VPN konfiguracijskih opcija." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Korisničko ime je potrebno." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Lozinka je potrebna." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Korisničko ime i lozinka je su potrebni." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Lozinka privatnog ključa je potrebna." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "HTTP Proxy korisničko ime je potrebno." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "HTTP Proxy lozinka je potrebna." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "HTTP Proxy korisničko ime i lozinka su potrebni." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Nemoguće pronaći openvpn binarni." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Neispravan HMAC auth." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Neispravan tip konekcije." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Neispravan proxy tip '%s'." + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Nepravilni proto '%s'." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Neispravan proxy tip '%s'." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Neispravna veličina ključa '%s'." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Neispravne sekunde ponovnog pregovaranja '%s'." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Neispravna TUN MTU veličina '%s'." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Neispravna veličina fragmenta '%s'." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Nedostaje potrebna lokalna IP adresa za mod statičnog ključa." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Nedostaje potrebna daljinska IP adresa za mod statičnog ključa." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Nepoznati tip konekcije '%s'." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Nemoguće obraditi zahtjev jer postavke VPN konekcije su bile neispravne." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "Nemoguće obraditi zahtjev jer je tip openvpn konekcije bio neispravan." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Neobrađena autentifikacija na čekanju." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Ne izlazi kada se VPN konekcija okonča" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Omogući detaljno praćenje grešaka (može otkriti lozinke)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service omogućuje integriranu OpenVPN sposobnost za " +"NetworkManager." diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..785713c --- /dev/null +++ b/po/ca.po @@ -0,0 +1,1700 @@ +# Catalan translations for NetworkManager package +# Traduccions al català del paquet «NetworkManager». +# Copyright © 2006 The Free Software Foundaton, Inc. +# This file is distributed under the same license as the +# NetworkManager package. +# +# Josep Puigdemont Casamajó , 2006. +# Gil Forcada , 2006, 2007, 2008. +# David Planella , 2009. +# Jordi Estrada , 2010. +# Walter Garcia-Fontes , 2016. +# Carles Ferrando Garcia , 2017. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager VERSION\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-04 11:36+0000\n" +"PO-Revision-Date: 2017-08-12 11:52+0100\n" +"Last-Translator: Carles Ferrando Garcia \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Client OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Client per a xarxes privades virtuals OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Ajuda per configurar connexions a xarxes privades virtuals OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN és una solució VPN lliure flexible i popular." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Els desenvolupadors del NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autentica la VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Contrasenya:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Contrasenya del certificat:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Contrasenya del servidor intermediari HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Autentica la VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Contrasenya del _certificat:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "C_ontrasenya del servidor intermediari HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Us heu d'autenticar per poder accedir a la xarxa privada virtual «%s»." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Trieu una clau estàtica OpenVPN..." + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Cap" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Claus estàtiques OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Predeterminat" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "No verifiqueu la identificació remota del certificat" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Verifica de forma exacta l'assumpte sencer" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Verifica el nom de forma exacta" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Verifica el nom per prefix" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Verifica l'assumpte de forma parcial (mode antic, fortament desaconsellat)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Servidor" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Client" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "No necessari" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(automàtic)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "ping-surt" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ping-reinicia" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "l'opció %s espera un argument entre %u i %u" +msgstr[1] "l'opció %s espera arguments entre %u i %u" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "l'opció %s no espera cap argument" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "l'opció %s espera exactament un argument" +msgstr[1] "l'opció %s espera exactament %u arguments" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "l'argument %s de «%s» no pot estar buit" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "l'argument de «%s» no pot estar buit" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "l'argument %s de «%s» ha de ser codificat en UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "l'argument de «%s» ha de ser codificat en UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "argument %uth no vàlida per a «%s» quan s'esperava un número" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "argument %uth no compatible per a %s de «%s»" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"argument %uth no compatible per a «%s» que sembla FQDN però sols són " +"compatibles adreces IPv4" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "argument %uth no vàlid per a «%s» on s'esperava una adreça IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "argument no vàlid %uth de direcció de la clau per a «%s»" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "argument %uth no vàlid per a «%s»" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "%s sense terminar a la posició %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "cometes dobles" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "cometa simple" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "barra inversa d'escapament al final a la posició %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "" +"no s'ha pogut llegir el fitxer d'autorització de servidor intermediari HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"no es pot llegir l'usuari/contrasenya des del fitxer d'autorització del " +"servidor intermediari HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"l'usuari/contrasenya del fitxer d'autorització del servidor intermediari " +"HTTP ha d'estar codificat en UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "«%s» no és un directori" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "no s'ha pogut crear el directori «%s»" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "no es pot escriure la bombolla <%s> des de la línia %ld al fitxer (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "no es pot escriure la bombolla <%s> des de la línia %ld al fitxer (%s)" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "argument mtu-disc no suportat" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1306 +#, c-format +msgid "invalid option" +msgstr "opció no vàlida" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "argumento comp-lzo no suportat" + +#: ../properties/import-export.c:1081 +#, c-format +msgid "remote cannot contain space" +msgstr "el remot no pot contenir un espai" + +#: ../properties/import-export.c:1085 +#, c-format +msgid "remote cannot contain comma" +msgstr "el remot no pot contenir una coma" + +#: ../properties/import-export.c:1096 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "el remot espera un protocol o bé udp o bé remot" + +#: ../properties/import-export.c:1290 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "tipus verify-x509-name no vàlid" + +#: ../properties/import-export.c:1432 +#, c-format +msgid "unsupported blob/xml element" +msgstr "element bombolla/xml no suportat" + +#: ../properties/import-export.c:1461 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "element bombolla no terminat <%s>" + +#: ../properties/import-export.c:1517 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "error de configuració: %s (línia %ld)" + +#: ../properties/import-export.c:1518 +msgid "unknown or unsupported option" +msgstr "opció desconeguda o no suportada" + +#: ../properties/import-export.c:1533 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "El fitxer a importar no era una configuració vàlida de client OpenVPN." + +#: ../properties/import-export.c:1541 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"El fitxer a importar no era una configuració vàlida de OpenVPN (sense remot)" + +#: ../properties/import-export.c:1773 +msgid "missing path argument" +msgstr "no s'ha trobat l'argument de camí " + +#: ../properties/import-export.c:1783 +msgid "connection is not a valid OpenVPN connection" +msgstr "la connexió no és una connexió vàlida OpenVPN" + +#: ../properties/import-export.c:1792 +msgid "connection was incomplete (missing gateway)" +msgstr "la connexió era incompleta (falta la passarel·la)" + +#: ../properties/import-export.c:2131 +#, c-format +msgid "failed to write file: %s" +msgstr "no s'ha pogut escriure el fitxer: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Compatible amb el servidor OpenVPN." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "extensió desconeguda de fitxer OpenVPN" + +#: ../properties/nm-openvpn-editor.c:298 +msgid "Certificates (TLS)" +msgstr "Certificats (TLS)" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Password" +msgstr "Contrasenya" + +#: ../properties/nm-openvpn-editor.c:322 +msgid "Password with Certificates (TLS)" +msgstr "Contrasenya amb certificats (TLS)" + +#: ../properties/nm-openvpn-editor.c:334 +msgid "Static Key" +msgstr "Clau estàtica" + +#: ../properties/nm-openvpn-editor.c:488 +msgid "could not create openvpn object" +msgstr "no s'ha pogut crear l'objecte openvpn" + +#: ../properties/nm-openvpn-editor.c:505 +msgid "could not load UI widget" +msgstr "no s'ha pogut carregar el giny IU" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "la classe «%s» d'objecte no té una propietat anomenada «%s»" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "la propietat «%s» de la classe «%s» d'objectes no es pot escriure" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"la propietat «%s» de construcció per a l'objecte «%s» no es pot establir " +"després de la construcció" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "«%s::%s» no és un nom vàlid de propietat; «%s» no un subtipus GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"no s'ha pogut establir la propietat «%s» de tipus «%s» a partir del valor de " +"tipus «%s»" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"el valor «%s» de tipus «%s» no és vàlid o està fora de rang per a la " +"propietat «%s» de tipus «%s»" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "No es troba el fitxer «%s» del connector" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "no es pot carregar el connector de l'editor: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "no es pot carregar la fàbrica %s del connector: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "error desconegut al crear la instància de l'editor" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "adreça no vàlida «%s»" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "propietat no vàlida d'enter «%s» o fora de rang [%d-> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "Propietat «%s» booleana no vàlida (no és sí o no)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "propietat no gestionada «%s» tipus %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "propietat «%s» no vàlida o no suportada" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "No hi ha cap opció de configuració del VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Es requereix un nom d'usuari." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Es requereix una contrasenya." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Es requereix un nom d'usuari i una contrasenya." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Es requereix una contrasenya de la clau privada." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Es requereix un nom d'usuari de proxy HTTP." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Es requereix una contrasenya de proxy HTTP." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Es requereix un nom d'usuari i una contrasenya de proxy HTTP." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2058 +#: ../src/nm-openvpn-service.c:2092 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"No s'ha pogut processar la demanda perquè els paràmetres de configuració de " +"la VPN eren erroni." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2067 +msgid "Invalid connection type." +msgstr "Tipus de connexió no vàlida." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "No s'ha pogut trobar el binari de l'openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Autenticació HMC no vàlida." + +#: ../src/nm-openvpn-service.c:1354 ../src/nm-openvpn-service.c:1362 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Número «%s» de port no vàlid." + +#: ../src/nm-openvpn-service.c:1378 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Proto «%s» no vàlid." + +#: ../src/nm-openvpn-service.c:1420 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Tipus «%s» de proxy no vàlid." + +#: ../src/nm-openvpn-service.c:1468 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Duració «%s» de ping no vàlida." + +#: ../src/nm-openvpn-service.c:1481 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Duració «%s» de ping-exit no vàlida." + +#: ../src/nm-openvpn-service.c:1494 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Duració «%s» de ping-restar no vàlida." + +#: ../src/nm-openvpn-service.c:1513 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "argument «%s» max-routes no vàlid" + +#: ../src/nm-openvpn-service.c:1568 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Mida de clau «%s» no vàlida." + +#: ../src/nm-openvpn-service.c:1625 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "configuració no vàlida amb tls-remote i verify-x509-name." + +#: ../src/nm-openvpn-service.c:1639 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "verify-x509-name no vàlid." + +#: ../src/nm-openvpn-service.c:1673 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Segons «%s» de renegociació no vàlids." + +#: ../src/nm-openvpn-service.c:1705 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Mida «%s» de TUN MTU no vàlida." + +#: ../src/nm-openvpn-service.c:1719 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Mida «%s» de fragment no vàlida." + +#: ../src/nm-openvpn-service.c:1831 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Tipus de connexió desconeguda «%s»." + +#: ../src/nm-openvpn-service.c:1850 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Usuari «%s» no trobat, verifiqueu NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1863 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Grup «%s» no trobat, verifiqueu NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2105 +msgid "Unhandled pending authentication." +msgstr "Autenticació pendent sense gestionar." + +#: ../src/nm-openvpn-service.c:2224 +msgid "Don’t quit when VPN connection terminates" +msgstr "No surtis quan la connexió VPN acabi" + +#: ../src/nm-openvpn-service.c:2225 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Habilita el registre de depuració de la sessió (pot exposar contrasenyes)" + +#: ../src/nm-openvpn-service.c:2226 +msgid "D-Bus name to use for this instance" +msgstr "Nom D-Bus a usar per a aquesta instància" + +#: ../src/nm-openvpn-service.c:2252 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"el nm-openvpn-service proveeix funcionalitat OpenVPN integrada al " +"NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "Autenticació TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS xifrat" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Potser" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Sí" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "Pas_sarel·la:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Passarel·la (passarel·les) remota(es), amb port i protocol opcionals (per " +"exemple ovpn.corp.com:1234:tcp). Podeu especificar múltiples amfitrions per " +"a redundància (useu comes o espais com delimitadors).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Autenticació" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Nom d'usuari:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Es passa la contrasenya a l'OpenVPN quan és demanada.\n" +"confi: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Es passa el nom d'usuari a l'OpenVPN quan és demanat.\n" +"confi: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Adreça IP remota:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Adreça IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Direcció de la clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Clau estàtica:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Fitxer compartit prèviament per al mode d'encriptat de clau estàtica (no " +"TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adreça IP del punt final remot de la VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adreça IP del punt final local de la VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direcció per al mode d'encriptat de clau estàtica (no-TLS).\n" +"Si s'utilitza una direcció de clau, ha de ser l'oposada que la de l'homòleg " +"de la VPN. Per exemple, si l'homòleg utilitza «1», aquesta connexió ha " +"d'utilitzar «0». Si no esteu segurs de quin valor heu d'utilitzar, contacteu " +"amb l'administrador del sistema.<\n" +"config: static [direcció]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Tipus:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Seleccioneu un mode d'autenticació." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "A_vançat..." + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Opcions avançades de l'OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Utilitza un _port de passarel·la personalitzat:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Número de port TCP/UDP per al parell. (Valor predeterminat quan no hi ha cap " +"port per a la passarel·la).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Utilitza un interval de _renegociació personalitzat:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegocia la clau del canal de dades després d'un nombre determinat de " +"segons.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Utilitza la compressió de dades L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Utilitza compressió LZO ràpida.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Selecciona el mode de compressió de dades LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Utilitza una connexió _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Usa TCP per comunicar amb l'amfitrió remot.\n" +"(Això és una configuració predeterminada que sols s'usa quan no s'especifica " +"cap protocol per a la passarel·la.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Estableix el tipus del _dispositiu virtual:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" +"Estableix explícitament el tipus i el nom del dispositiu virtual (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Estableix explícitament el tipus del dispositiu virtual (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " i el _nom:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Usa un nom personalitzat per al dispositiu virtual TUN/TAP (en comptes del " +"predeterminat «tun» o «tap»).\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"_Utilitza una unitat de transmissió màxima del túnel (MTU) personalitzada:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Agafa el MTU del dispositiu TUN perquè sigui el valor especificat i deriva " +"l'enllaç MTU a partir d'ell.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Utilitza una mida de _fragment UDP personalitzada:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Habilita la fragmentació del datagrama intern amb aquesta mida màxima.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "_Restringeix la mida de segment màxima del túnel TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restringeix el MSS del TCP túnel.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "Aleatoritza ela a_mfitrions remots" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Aleatoritza l'ordre de la llista (remota) de passarel·les com un tipus de " +"mesura bàsica de balancejat de la càrrega.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "enllaç tun IPv6" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Construeix un enllaç tun capaç de reenviar el tràfic IPv6\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Especifiqueu _exit o reinicieu el ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Surt o reinicia després d'una passada de n segons sense recepció d'un ping o " +"algun altre paquet del remot.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Especifiqueu l'interval de pin_g:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Fes un ping al remot sobre un canal de control TCP/UDP si no s'ha enviat cap " +"paquet per almenys n segons.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Accepta paquets autenticats de qualsevol adreça (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Permet al parell remot canviar la seva adreça IP i/o el seu número de port, " +"com ara el que es deu al DHCP (això és el comportament predeterminat si no " +"es fa servir --remote). --float quan s'especifica amb --remote permet la " +"sessió OpenVPN connectar-se inicialment amb un parell a una adreça coneguda, " +"però si arriben paquets des d'una adreça nova i passen totes les " +"verificacions d'autenticació, la nova adreça prendrà control de la sessió. " +"Això és útil quan esteu connectant a un parell que té una adreça dinàmica " +"com ara un usuari de connexió telefònica o un client DHCP.\n" +"\n" +"Essencialment, --float li diu al OpenVPN que accepti paquets autenticats des " +"de qualsevol adreça, no sols l'adreça que es va especificar a l'opció --" +"remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Especifica les rutes max:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Especifica el nombre màxim de rutes que el servidor té permès especificar.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Encripta els paquets amb un algoritme de xifrat. Per defecte és BF-CBC " +"(Blowfish in Cipher Block Chaining mode).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "U_sa una mida personalitzada per a la clau de xifrat:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Estableix la mida de la clau de xifrat a un valor personalitzat. Si no " +"s'especifica agafa el valor predeterminat de la mida específica per al " +"xifrat.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentica els paquets amb HMAC usant l'algoritme de resum de missatges. Per " +"defecte és SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "C_riptògraf:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_Autenticació HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Seguretat" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "_Assumpte que ha de coincidir:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Assumpte o nom comú a verificar contra la informació del certificat del " +"servidor.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Comprova el _certificat del servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Verifica la identificació del certificat del servidor.\n" +"\n" +"Quan està habilitat, la connexió només tindrà èxit si el certificat del " +"servidor coincideixamb algunes propietats esperades.\n" +"La coincidència pot aplicar-se a tot l'assumpte del certificat (tots els " +"camps),\n" +"o sols el nom comú (camp CN).\n" +"\n" +"L'opció antiga tls-remote està desaconsellada i suprimida de OpenVPN 2.4 i " +"més recents. No la useu més.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verifica la signatura d'ús de certificat (de servidor) del parell" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Requereix que el certificat del parell hagi estat signat amb un ús explícit " +"de clau i un ús estès de clau basat en regles RFC3280 TLS." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "Tipus TLS del certificat del parell _remot:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Requereix que el certificat del parell hagi estat signat amb un ús explícit " +"de clau i un ús estès de clau basat en regles RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "" +"_Verifica la designació nsCertType del certificat del parell (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Requereix que el certificat del parell hagi estat signat amb una designació " +"nsCertType explícita." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Designació _remota nsCert del certificat del parell:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Requereix que el certificat del parell hagi estat signat amb una designació " +"nsCertType explícita\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "_Direcció de la clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Afegeix una cap addicional d'autenticació HMAC a sobre del canal de control " +"TLS per protegir contra atacs DoS.\n" +"config: tls-auth [direcció]" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Paràmetre de direcció per al mode de clau estàtica.\n" +"Si s'utilitza una direcció de clau, ha de ser l'oposada que la de l'homòleg " +"de la VPN. Per exemple, si l'homòleg utilitza «1», aquesta connexió ha " +"d'utilitzar «0». Si no esteu segurs de quin valor heu d'utilitzar, contacteu " +"amb l'administrador del sistema.\n" +"config: tls-auth [direcció]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "_Fitxer de clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Mode" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Afegeix una capa addicional de xifrat o d'autenticació HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Additional TLS authentication or encryption" +msgstr "Autenticació TLS addicional o xifrat" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "Autenticació TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipus de proxy: HTTP o Socks.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "_Tipus de servidor intermediari:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Seleccioneu aquesta opció si la vostra organització requereix l'ús d'un " +"servidor intermediari per accedir a Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "_Adreça del servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Connecta't a l'amfitrió remot mitjançant un proxy amb aquesta adreça.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Connecta a l'amfitrió remot mitjançant un proxy amb aquest port.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "_Reintenta-ho indefinidament quan es produeixin errors" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Torna a provar indefinidament si hi ha errors de proxy. Simula un reinici " +"SIGUSR1.\n" +"config: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "_Nom d'usuari del servidor intermediari:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "C_ontrasenya del servidor intermediari:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"El nom d'usuari del proxy HTTP/Socks que s'ha passat a l'OpenVPN quan es va " +"demanar." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"La contrasenya del proxy HTTP/Socks que s'ha passat a l'OpenVPN quan es va " +"demanar." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "Mo_stra les contrasenyes" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Servidors intermediaris" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Camí a la descoberta mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Miscel·lània" + +#~ msgid "Choose your personal certificate..." +#~ msgstr "Trieu el vostre certificat personal..." + +#~ msgid "Choose your private key..." +#~ msgstr "Trieu la vostra clau privada..." + +#~ msgid "Choose a Certificate Authority certificate..." +#~ msgstr "Trieu un certificat d'autoritat de certificació..." + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "Certificats PEM o PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "Certificats PEM (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "" +#~ "no es pot escriure la bombolla <%s> des de la línia %ld al fiter «%s»" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Falta l'adreça IP local requerida per al mode de clau estàtica." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Falta l'adreça IP remota requerida per al mode de clau estàtica." + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "No s'ha pogut trobar la demanda perquè el tipus de la connexió openvpn no " +#~ "era vàlid." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "Authentication" +#~ msgstr "Autenticació" + +#~ msgid "_Show passwords" +#~ msgstr "_Mostra les contrasenyes" + +#~ msgid "Password for private key" +#~ msgstr "Contrasenya per a la clau privada..." + +#~ msgid "Private Key Password:" +#~ msgstr "Contrasenya de la clau privada:" + +#~ msgid "" +#~ "Local peer's private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Clau privada del parell local en format .pem.\n" +#~ "config: key" + +#~ msgid "Private Key:" +#~ msgstr "Clau privada:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Fitxer d'autoritat de certificats (CA) en format .pem.\n" +#~ "config: ca" + +#~ msgid "CA Certificate:" +#~ msgstr "Certificat de CA:" + +#~ msgid "" +#~ "Local peer's signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Certificat signat pel parell local en format .pem (signat pel ca del " +#~ "certificat CD).\n" +#~ "config: cert" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Connecta només als servidors on el certificat d'aquests coincideixi " +#~ "amb l'assumpte proporcionat.\n" +#~ "Per exemple: /CN=elmeuvpn.companyia.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Accepta connexions sols des d'un amfitrió amb nom X509 o nom comú igual " +#~ "al que s'ha especificat.\n" +#~ "config: tls-remote" + +#~ msgid "could not open file for writing" +#~ msgstr "no s'ha pogut obrir el fitxer per escriure" + +#, fuzzy +#~ msgid "Not Required" +#~ msgstr "No necessari" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Gestor de connexions VPN (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Afegiu, suprimiu, i editeu connexions VPN" + +#~ msgid "_Password:" +#~ msgstr "_Contrasenya:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Contrasenya _secundària:" + +#~ msgid "_Username:" +#~ msgstr "Nom d'_usuari:" + +#~ msgid "_Domain:" +#~ msgstr "_Domini:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connecta _anònimament" + +#~ msgid "Connect as _user:" +#~ msgstr "Connecta com a _usuari:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Recorda la contrasenya per aquesta sessió" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Desa la contrasenya a l'anell de claus" + +#~ msgid "Use a TA_P device" +#~ msgstr "Utilitza un dispositiu TA_P" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Es crearà la següent connexió OpenVPN:" + +#~ msgid "Name: %s" +#~ msgstr "Nom: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Tipus de connexió: Certifcats X.509" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Certificat: %s" + +#~ msgid "Key: %s" +#~ msgstr "Clau: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Tipus de connexió: Clau compartida" + +#~ msgid "Shared Key: %s" +#~ msgstr "Clau compartida: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP remota: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Tipus de connexió: Contrasenya" + +#~ msgid "Username: %s" +#~ msgstr "Nom d'usuari: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Tipus de connexió: X.509 amb autenticació de contrasenya" + +#~ msgid "Remote: %s" +#~ msgstr "Remot: %s" + +#~ msgid "Device: %s" +#~ msgstr "Dispositiu: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protocol: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Rutes: %s" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "Autenticació TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Els detalls de la connexió es poden canviar amb el botó «Edita»." + +#~ msgid "Cannot import settings" +#~ msgstr "No s'han pogut importar els paràmetres" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "El fitxer de paràmetres VPN «%s», no conté dades vàlides." + +#~ msgid "Select file to import" +#~ msgstr "Seleccioneu el fitxer a importar" + +#~ msgid "Select CA to use" +#~ msgstr "Seleccioneu la CA a utilitzar" + +#~ msgid "Select certificate to use" +#~ msgstr "Seleccioneu el certificat a utilitzar" + +#~ msgid "Select key to use" +#~ msgstr "Seleccioneu la clau a utilitzar" + +#~ msgid "Select shared key to use" +#~ msgstr "Seleccioneu la clau compartida a utilitzar" + +#~ msgid "Select TA to use" +#~ msgstr "Seleccioneu la TA a utilitzar" + +#~ msgid "Save as..." +#~ msgstr "Anomena i desa..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Ja existeix un fitxer anomenat «%s»." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Voleu reemplaçar-lo pel que voleu desar?" + +#~ msgid "Failed to export configuration" +#~ msgstr "No s'ha pogut exportar la configuració" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "exemple: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "Fitxer C_A:" + +#~ msgid "Connection na_me:" +#~ msgstr "No_m de la connexió:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Importa una configuració de_sada..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "_Nom utilitzat per identificar la connexió a la xarxa privada, per " +#~ "exemple «VPN del Campus» o «Xarxa Corporativa»" + +#~ msgid "Network" +#~ msgstr "Xarxa" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "_Fes servir només la connexió VPN per a aquestes adreces:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Entreu la informació proporcionada pel vostre administrador de sistema. " +#~ "No hi entreu la vostra contrasenya, ja es demanarà en connectar." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "El fitxer que heu importat no és un fitxer de configuració OpenVPN. " +#~ "Demaneu-li el fitxer a l'administrador." + +#~ msgid "Shared _key:" +#~ msgstr "_Clau compartida:" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Utilitza autenticació _TLS:" + +#~ msgid "Use cip_her:" +#~ msgstr "Utilitza _xifratge:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "Certificats X.509\n" +#~ "Clau pre-compartida\n" +#~ "Autenticació de contrasenya\n" +#~ "X.509 amb autenticació de contrasenya" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "A_dreça de la passarel·la:" + +#~ msgid "_Key:" +#~ msgstr "_Clau:" + +#~ msgid "_Local IP:" +#~ msgstr "IP _local:" + +#~ msgid "_Remote IP:" +#~ msgstr "IP _remota:" + +#~ msgid "_none" +#~ msgstr "_cap" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè no s'han acceptat el nom " +#~ "d'usuari, o la contrasenya o la contrasenya certificada és errònia.\"" + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè no s'ha pogut iniciar l'aplicació " +#~ "VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè l'aplicació VPN no s'ha pogut " +#~ "connectar al servidor VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè l'aplicació VPN ha rebut una " +#~ "configuració errònia del servidor VPN." + +#~ msgid "VPN connection failed" +#~ msgstr "Ha fallat la connexió VPN" + +#~ msgid "Connection Information" +#~ msgstr "Informació de la connexió" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/Contrasenya" + +#~ msgid "CA file:" +#~ msgstr "Fitxer CA:" + +#~ msgid "Optional" +#~ msgstr "Opcional" diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 0000000..5817be4 --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,1101 @@ +# Catalan translations for NetworkManager package +# Traduccions al català del paquet «NetworkManager». +# Copyright © 2006 The Free Software Foundaton, Inc. +# This file is distributed under the same license as the +# NetworkManager package. +# Josep Puigdemont Casamajó , 2006. +# Gil Forcada , 2006, 2007, 2008. +# David Planella , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-05-10 12:43+0200\n" +"Last-Translator: David Planella \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Autentica la VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Contrasenya:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Contrasenya del certificat:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentica la VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Contrasenya del _certificat:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Vos heu d'autenticar per poder accedir a la xarxa privada virtual «%s»." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "Gestor de connexions VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Afegiu, suprimiu, i editeu connexions VPN" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Trieu el vostre certificat personal..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Trieu la vostra clau privada..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Trieu un certificat d'autoritat de certificació..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Trieu una clau estàtica OpenVPN..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Cap" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificats PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificats PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Claus estàtiques OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Predeterminat" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Compatible amb el servidor OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certificats (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Contrasenya" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Contrasenya amb certificats (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Clau estàtica" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Configuració de l'OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "Pas_sarel·la:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autenticació" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Mostra les contrasenyes" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Trieu la vostra clau privada..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Contrasenya de la clau privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Clau privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificat d'autoritat de certificació:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificat d'usuari:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nom d'usuari:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Adreça IP remota:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Adreça IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Direcció de la clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Clau estàtica:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Si s'utilitza una direcció de clau, ha de ser l'oposada que la de " +"l'homòleg de la VPN. Per exemple, si l'homòleg utilitza «1», esta connexió " +"ha d'utilitzar «0». Si no esteu segurs de quin valor heu d'utilitzar, " +"contacteu amb l'administrador del sistema." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tipus:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "Autenticació TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_vançat..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Opcions avançades de l'OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Utilitza un _port de passarel·la personalitzat:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Utilitza la compressió de dades L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "Utilitza compressió LZO: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Utilitza una connexió _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Criptògraf:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Autenticació HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Seguretat" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Utilitza autenticació TLS addicional" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Utilitza autenticació TLS addicional" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Direcció de la clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Si s'utilitza una direcció de clau, ha de ser l'oposada que la de " +"l'homòleg de la VPN. Per exemple, si l'homòleg utilitza «1», esta connexió " +"ha d'utilitzar «0». Si no esteu segurs de quin valor heu d'utilitzar, " +"contacteu amb l'administrador del sistema." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Fitxer de clau:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Autenticació TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +#, fuzzy +msgid "Proxy _Type:" +msgstr "Tipus:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "Adreça IP remota:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "Port: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "Nom d'usuari:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "Contrasenya:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "Mostra les contrasenyes" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "Configuració de l'OpenVPN" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Contrasenya de la clau privada:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "Tipus de co_nnexió:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +msgid "Unknown connection type '%s'." +msgstr "Tipus de co_nnexió:" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"No s'ha pogut connectar a la VPN perquè les opcions de configuració de la " +"VPN eren erronis." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Utilitza autenticació TLS addicional" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Contrasenya:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Contrasenya _secundària:" + +#~ msgid "_Username:" +#~ msgstr "Nom d'_usuari:" + +#~ msgid "_Domain:" +#~ msgstr "_Domini:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connecta _anònimament" + +#~ msgid "Connect as _user:" +#~ msgstr "Connecta com a _usuari:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Recorda la contrasenya per esta sessió" + +#~ msgid "_Save password in keyring" +#~ msgstr "Al_ça la contrasenya a l'anell de claus" + +#~ msgid "Use a TA_P device" +#~ msgstr "Utilitza un dispositiu TA_P" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Es crearà la següent connexió OpenVPN:" + +#~ msgid "Name: %s" +#~ msgstr "Nom: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Tipus de connexió: Certifcats X.509" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Certificat: %s" + +#~ msgid "Key: %s" +#~ msgstr "Clau: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Tipus de connexió: Clau compartida" + +#~ msgid "Shared Key: %s" +#~ msgstr "Clau compartida: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP remota: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Tipus de connexió: Contrasenya" + +#~ msgid "Username: %s" +#~ msgstr "Nom d'usuari: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Tipus de connexió: X.509 amb autenticació de contrasenya" + +#~ msgid "Remote: %s" +#~ msgstr "Remot: %s" + +#~ msgid "Device: %s" +#~ msgstr "Dispositiu: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protocol: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Rutes: %s" + +#~ msgid "Yes" +#~ msgstr "Sí" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "Autenticació TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Els detalls de la connexió es poden canviar amb el botó «Edita»." + +#~ msgid "Cannot import settings" +#~ msgstr "No s'han pogut importar els paràmetres" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "El fitxer de paràmetres VPN «%s», no conté dades vàlides." + +#~ msgid "Select file to import" +#~ msgstr "Seleccioneu el fitxer a importar" + +#~ msgid "Select CA to use" +#~ msgstr "Seleccioneu la CA a utilitzar" + +#~ msgid "Select certificate to use" +#~ msgstr "Seleccioneu el certificat a utilitzar" + +#~ msgid "Select key to use" +#~ msgstr "Seleccioneu la clau a utilitzar" + +#~ msgid "Select shared key to use" +#~ msgstr "Seleccioneu la clau compartida a utilitzar" + +#~ msgid "Select TA to use" +#~ msgstr "Seleccioneu la TA a utilitzar" + +#~ msgid "Save as..." +#~ msgstr "Anomena i desa..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Ja existeix un fitxer anomenat «%s»." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Voleu reemplaçar-lo pel que voleu desar?" + +#~ msgid "Failed to export configuration" +#~ msgstr "No s'ha pogut exportar la configuració" + +#~ msgid "Failed to save file %s" +#~ msgstr "No s'ha pogut desar el fitxer %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "exemple: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "Fitxer C_A:" + +#~ msgid "Connection na_me:" +#~ msgstr "No_m de la connexió:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Importa una configuració de_sada..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "_Nom utilitzat per identificar la connexió a la xarxa privada, per " +#~ "exemple «VPN del Campus» o «Xarxa Corporativa»" + +#~ msgid "Network" +#~ msgstr "Xarxa" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "_Fes servir només la connexió VPN per a aquestes adreces:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Entreu la informació proporcionada pel vostre administrador de sistema. " +#~ "No hi entreu la vostra contrasenya, ja es demanarà en connectar." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "El fitxer que heu importat no és un fitxer de configuració OpenVPN. " +#~ "Demaneu-li el fitxer a l'administrador." + +#~ msgid "Shared _key:" +#~ msgstr "_Clau compartida:" + +#~ msgid "TLS-Auth" +#~ msgstr "Autenticació TLS" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Utilitza autenticació _TLS:" + +#~ msgid "Use cip_her:" +#~ msgstr "Utilitza _xifratge:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "Certificats X.509\n" +#~ "Clau pre-compartida\n" +#~ "Autenticació de contrasenya\n" +#~ "X.509 amb autenticació de contrasenya" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "A_dreça de la passarel·la:" + +#~ msgid "_Key:" +#~ msgstr "_Clau:" + +#~ msgid "_Local IP:" +#~ msgstr "IP _local:" + +#~ msgid "_Remote IP:" +#~ msgstr "IP _remota:" + +#~ msgid "_none" +#~ msgstr "_cap" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè no s'han acceptat el nom " +#~ "d'usuari, o la contrasenya o la contrasenya certificada és errònia.\"" + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè no s'ha pogut iniciar l'aplicació " +#~ "VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè l'aplicació VPN no s'ha pogut " +#~ "connectar al servidor VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "No s'ha pogut connectar a la VPN perquè l'aplicació VPN ha rebut una " +#~ "configuració errònia del servidor VPN." + +#~ msgid "VPN connection failed" +#~ msgstr "Ha fallat la connexió VPN" + +#~ msgid "Connection Information" +#~ msgstr "Informació de la connexió" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/Contrasenya" + +#~ msgid "CA file:" +#~ msgstr "Fitxer CA:" + +#~ msgid "Optional" +#~ msgstr "Opcional" diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..13de1b4 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,1340 @@ +# Czech translation of network-manager-openvpn. +# Copyright (C) 2008, 2009, 2010 the author(s) of network-manager-openvpn. +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Jakub Friedl , 2006. +# Jiří Eischmann , 2008. +# Zdeněk Hataš , 2009 - 2017 +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-28 15:51+0000\n" +"PO-Revision-Date: 2017-09-06 12:43+0200\n" +"Last-Translator: Zdeněk Hataš \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.8.7.1\n" +"X-Poedit-Bookmarks: 35,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Klient OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klient pro virtální soukromé sítě OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Podpora nastavení sítí OpenVPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN je populární a flexibilní nekomerční softwarové řešení VPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Vývojáři aplikace NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Ověřit VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Heslo:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Heslo certifikátu:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Heslo proxy pro HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Ověřování VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Heslo _certifikátu:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Heslo proxy pro _HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Pro přístup do VPN „%s“ se musíte autentizovat." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Zvolit statický klíč OpenVPN…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Žádný" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statické klíče OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Výchozí" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Neověřovat identifikaci certifikátu" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Ověřovat akorát subjekt jako celek" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Ověřovat akorát název" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Ověřovat název podle prefixu" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Ověřovat subjekt po částech (zastaralý režim, důrazně nedoporučeno)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Klient" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Není vyžadováno" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(automaticky)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "volba %s očekává %u až %u argumenty" +msgstr[1] "volba %s očekává %u až %u argumenty" +msgstr[2] "volba %s očekává %u až %u argumentů" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "volba %s neočekává žádný argument" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "volba %s očekává právě jeden argument" +msgstr[1] "volba %s očekává přesně %u argumenty" +msgstr[2] "volba %s očekává přesně %u argumentů" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argument „%s“ z „%s“ nesmí být prázdný" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argument „%s“ nesmí být prázdný" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argument „%s“ z „%s“ musí být kódovaný v UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argument „%s“ musí být kódovaný v UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "neplatný %u. argument pro „%s“, bylo očekáváno číslo" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "nepodporovaný %u. argument %s pro „%s“" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"nepodporovaný %u. argument pro „%s“, který vypadá jako FQDN, ale podporovaná " +"je jen adresa IPv4" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "neplatný %u. argument pro „%s“, byla očekávána adresa IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "neplatný %u. argument key-direction pro „%s“" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "neplatný %u. argument pro „%s“" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "neukončený %s na pozici %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "uvozovky" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "apostrof" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "ukončující zpětné lomítko na pozici %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "nepodařilo se přečíst ověřovací soubor proxy pro HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "nelze čít uživatelské jméno/heslo z ověřovacího souboru proxy pro HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"uživatelské jméno/heslo z ověřovacího souboru proxy pro HTTP musí být " +"kódované v UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s“ není složka" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "nelze vytvořit složku „%s“" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "nelze zapsat binární data <%s> z řádku %ld do souboru (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "nelze zapsat binární data <%s> z řádku %ld do souboru „%s“" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "nepodporovaný argument mtu-disc" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "neplatná volba" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nepodporovaný argument com-lzo" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "remote nemůže obsahovat mezeru" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "remote obsahuje čárku" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "protistrana očekává protokol typu „tcp“ nebo „udp“" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "neplatný typ verify-x509-name" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "nepodporovaný blob/xml element" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "neukončený blob element <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "chyba v nastavení: %s (řádek %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "neznámá nebo nepodporovaná volba" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Importovaný soubor nebyl platným nastavením klienta OpenVPN." + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Importovaný soubor nebyl platným nastavením OpenVPN (chybí protistrana)." + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "chybí argument s cestou" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "připojení není platné připojení OpenVPN" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "připojení nebylo úplné (chybí brána)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "selhal zápis do souboru: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibilní s OpenVPN serverem." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "neznámá přípona souboru OpenVPN" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Certifikáty (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Heslo" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Heslo s certifikáty (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Statický klíč" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "nelze vytvořit objekt openvpn" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "nelze nahrát widget uživatelského rozhraní" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "objektová třída „%s“ nemá vlastnost s názvem „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "vlastnost „%s“ objektové třídy „%s“ není zapisovatelná" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"vytvoření vlastnosti „%s“ objektu „%s“ nemůže být nastaveno po vytvoření" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "„%s::%s“ není platný název vlastnosti; „%s“ není podtyp GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "nelze nastavit vlastnost „%s“ typu „%s“ z hodnoty typu „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"hodnota „%s“ typu „%s“ je neplatná nebo mimo rozmezí pro vlastnost „%s“ u " +"typu „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "chybí souboer se zásuvným modulem „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "nelze načíst zásuvný modul edotoru: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "nelze načíst generátor %s ze zásuvného modulu: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "neznámá chyba při vytváření instance editoru" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "neplatný znak „%c“ v oddělovači" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "neplatný znak nepatřící do UTF-8" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "neuvedený hostitel" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "neplatný port" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "neplatný protokol" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "neplatná adresa „%s“" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "celočíselná volba „%s“ není platná nebo je mimo rozsah [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "pravdivostní volba „%s“ není platná (není yes nebo no)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "neošetřená volba „%s“ typu %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "volba „%s“ není platná nebo podporovaná" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Žádné volby nastavení VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Je požadováno uživatelské jméno." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Je požadováno heslo." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Je požadováno uživatelské jméno a heslo." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Heslo soukromého klíče je požadováno." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Je požadováno uživatelské jméno k HTTP proxy." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Je požadováno heslo k HTTP proxy." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Je požadováno uživatelské jméno a heslo k HTTP proxy." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "Nelze zpracovat požadavek, protože nastavení VPN nejsou platná." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Neplatný typ připojení." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Nelze nalézt program openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Neplatná autentizace HMAC." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Neplatné číslo portu „%s“." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Neplatný protokol „%s“." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Neplatný typ proxy „%s“." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Neplatná doba trvání pinknutí „%s“." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Neplatná doba trvání ukončení pinknutí ping-exit „%s“." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Neplatná doba trvání restartu pinknutí ping-restart „%s“." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Neplatný argument max-routes „%s“" + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Neplatná délka klíče „%s“." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Neplatná konfugurace s tls-remote a verify-x509-name." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Neplatné verify-x509-name." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Neplatná počet sekund opětovného vyjednávání „%s“." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Neplatná velikost TUN MTU „%s“." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Neplatná velikost fragmentu „%s“." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Neznámý typ připojení „%s“." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Uživatel „%s“ nebyl nalezen, zkontrolujte proměnnou NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Skupina „%s“ nebyla nalezena, zkontrolujte proměnnou NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Neošetřená čekající autentizace." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Neukončovat během ukončování spojení VPN" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Povolit podrobný ladicí výpis (může prozradit hesla)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "Název použitý pro tuto instanci v D-Bus" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service umožňuje NetworkManageru poskytovat služby pro " +"připojování k OpenVPN." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-Auth" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-Crypt" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Možná" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Ano" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Obecné" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Brána:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Vzdálená brána(y), volitelně s portem a protokolem (např. ovpn.corp.com:1234:" +"tcp). Kvůli redundanci je možné zadat více položek (oddělených mezerou nebo " +"čárkou).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Autentizace" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Uživatelské jméno:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Heslo předané na požadavek OpenVPN.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Uživatelské jméno předané na požadavek OpenVPN.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Vzdálená adresa IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Místní adresa IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Směr klíče:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Statický klíč:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Sdílený soubor pro režim šifrování statickým klíčem (non-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adresa IP vzdáleného uzlu VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adresa IP místního uzlu VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Směr pro režim šifrování statickým klíčem (non-TLS).\n" +"Pokud se používá směr klíče, musí být opačný k protějšku VPN. Například, " +"když protějšek používá „1“, toto připojení musí použít „0“. Pokud si nejste " +"jisti, jakou hodnotu použít, kontaktujte správce svého systému.\n" +"config: static [směr]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Typ:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Zvolete způsob autentizace." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "P_okročilé…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Pokročilé volby OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "P_oužít vlastní port brány:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Číslo portu TCP/UDP místního zakončení. (Výchozí volba pokud není pro bránu " +"zadán port.)\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Použít vlastní interval opětovného _připojení:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Vyjednat nové klíče datového kanálu po zadaném počtu sekund.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Použít komprimaci L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Použít rychlou kompresi LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Použít režim komprimace dat LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Použít spojení _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Pro komunikaci se vzdáleným uzlem použít TCP.\n" +"(Toto je výchozí volba. Je použita pouze v případě, že pro bránu není " +"specifikován žádný protokol.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Nastavit typ virtuálního _zařízení:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Výslovně nastavit typ a název virtuálního zařízení (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Výslovně nastavit typ virtuálního zařízení (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr "a _název:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Použít vlastní název virtuálního zařízení TUN/TAP (místo výchozího „tun“ " +"nebo „tap“).\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Použít vlastní maximální velikost přenosové _jednotky (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Odvodit MTU linky z MTU zařízení TUN.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Použít vlastní velikost UDP _fragmentu:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Povolit interní fragmentaci datagramů touto maximální délkou.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Omezit maximální velikost _segmentu TCP u tunelu (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Omezit TCP MSS tunelu.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "_Náhodně seřadit vzdálené uzly" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Náhodně seřadit seznam bran (vzdálených) jako způsob rozložení zátěže.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "Linka IPv6 tun" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Vytvořit linku tun schopnou přeposílání provozu IPv6\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Nastavit ukončení nebo restart pinkání:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Ukončit nebo restartovat po n sekundách bez přijetí jakéhokoliv paketu nebo " +"pinknutí od protistrany.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Nastavit interval pin_knutí:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Poslat protistraně pinknutí přes řídící kanál TCP/UDP, pokud nebyly v " +"posledních n sekundách poslány žádné pakety.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Přijmout autentizované pakety z jakékoli adresy (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Povolit protějšímu uzlu změnit svoji IP adresu a/nebo číslo portu; např. " +"DHCP (toto je výchozí chování pokud je použit parametr --remote). Pokud je " +"spolu s --remote zadáno --float, dovolí úvodní připojení relace OpenVPN k " +"uzlu na známé adrese. Pokud ale pakety přijdou z nové adresy a projdou všemi " +"autentizačními testy, nová adresa převezme kontrolu nad spojením. To je " +"užitečné, pokud se připojujete k uzlu, který má přiřazenu danamickou adresu. " +"Například uživatel vytáčeného spojení nebo klient DHCP.\n" +"\n" +"Parametr --float v podstatě říká OpenVPN, aby přijalo autentizované pakety z " +"jakékoli adresy, ne pouze z adresy specifikované parametrem --remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Zadejte max. počet cest:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Zadejte maximální počet směrovacích cest, které server může určit.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifrovací algoritmus pro kódování paketů. Výchozí je BF-CBC (Blowfish v " +"režimu Cipher Blok Chaining).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Použít vlastní délku klíče šifry:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Nastavit délku klíče šifry na vlastní hodnotu. Pokud není specifikována, " +"bude použita výchozí pro danou šifru.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentizovat pakety pomocí HMAC použitím algoritmu message digest. Výchozí " +"je SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "Šifra:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "Autentizace HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Zabezpečení" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "Subjekt odpovídá:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Subjekt nebo běžný název „Common Name“, vůči kterému se mají ověřovat " +"informace serverového certifikátu.\n" +"\n" +"config: verify-x509-name předmět-nebo-název [režim]\n" +"config (zastaralý režim): tls-remote předmět-nebo-název" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Kontrola serverového _certifikátu:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Ověřovat identifikaci serverového certifikátu.\n" +"\n" +"Když je zapnuto, bude připojení úspěšné jen tehdy, pokud serverový " +"certifikát vyhovuje některým očekávaným vlastnostem.\n" +"Vyhodnocuje se buď subjekt certifikátu jako celek (všechna pole),\n" +"nebo jen běžný název „Common Name“ (pole CN).\n" +"\n" +"Dřívější předvolba tls-remote je zastaralá a z OpenVPN 2.4 a novjější byla " +"odstraněna. Dále ji nepoužívejte.\n" +"\n" +"config: verify-x509-name předmět-nebo-název [režim]\n" +"config (zastaralý režim): tls-remote předmět-nebo-název" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "O_věřit podpis použití certifikátu protistrany (serveru)" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Vyžaduje, aby certifikát protistrany byl podepsán a definoval jednoznačné " +"hodnoty atributů použití a rozšířeného použití klíče dle pravidel TLS " +"(RFC3289)." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "Typ TLS certifikátu p_rotistrany:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Vyžaduje, aby certifikát protistrany byl podepsán a definoval jednoznačné " +"hodnoty atributů použití a rozšířeného použití klíče dle pravidel TLS " +"(RFC3289).\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "O_věřit označení nsCertType certifikátu protistrany (serveru)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Vyžaduje, aby certifikát protistrany byl podepsán s jednoznačným ozančením " +"nsCertType" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Označení nsCert certifikátu p_rotistrany:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Vyžaduje, aby certifikát protistrany byl podepsán s jednoznačným označením " +"nsCertType.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "Směr klíče:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Chránit příkazový kanál TLS před útoky typu DoS přidáním další úrovně " +"autentizace HMAC.\n" +"config: tls-auth [směr]" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parametr směru pro režim statického klíče.\n" +"Pokud se používá směr klíče, musí být opačný k protějšku VPN. Například, " +"když protějšek používá „1“, toto připojení musí použít „0“. Pokud si nejste " +"jisti, jakou hodnotu použít, kontaktujte správce svého systému.\n" +"config: tls-auth [směr]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "Soubor klíče:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Režim" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Přidat další úroveň šifrování nebo autentizace HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Additional TLS authentication or encryption" +msgstr "Použít dodatečnou autentizaci TLS nebo šifrování" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "Autentizace TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Typ proxy: HTTP nebo Socks.\n" +"config: http-proxy nebo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Typ proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Zvolte tuto možnost, pokud vaše organizace používá pro přístup do " +"Internetu server proxy." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "Adresa serveru:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Připojit ke vzdálenému uzlu prostřednictvím proxy s touto adresou.\n" +"config: http-proxy nebo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Připojit ke vzdálenému uzlu prostřednictvím proxy s tímto portem.\n" +"config: http-proxy nebo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "Neustále o_pakovat pokud nastane chyba" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Při chybě proxy opakovat do nekonečna. Simuluje reset signálem SIGUSR1.\n" +"config: http-proxy-retry nebo socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Uživatelské jméno proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Heslo proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "Uživatelské jméno proxy HTTP/Socks předané na požadavek OpenVPN." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Heslo proxy HTTP/Socks předané na požadavek OpenVPN." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "Zobrazit heslo" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Servery proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Zjištění MTU cesty" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Různé" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..7c1e6a8 --- /dev/null +++ b/po/da.po @@ -0,0 +1,1391 @@ +# Danish translation of NetworkManager-openvpn +# Copyright (C) 2005-2017 +# This file is distributed under the same license as the NetworkManager-openvpn package. +# David Zeuthen , 2005. +# Lasse Bang Mikkelsen , 2006, 07. +# Mads Bille Lundby , 2009. +# Alan Mortensen , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-02-26 22:58+0000\n" +"PO-Revision-Date: 2017-03-12 15:24+0100\n" +"Last-Translator: Alan Mortensen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN-klient" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klient til virtuelle private OpenVPN-netværk" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Understøttelse af konfigurering af virtuelle private OpenVPN-" +"netværksforbindelser." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN er en fri, populær og fleksibel VPN-løsning." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Udviklerne af Netværkshåndtering" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Godkend VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Password:" +msgstr "Adgangskode:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Adgangskode til certifikat:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Adgangskode til HTTP-proxy:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "VPN-godkendelse" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Ad_gangskode til certifikat:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Adgangskode til _HTTP-proxy:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Du skal opnå godkendelse for at tilgå det virtuelle private netværk \"%s\"." + +#: ../properties/auth-helpers.c:213 +msgid "Choose your personal certificate…" +msgstr "Vælg dit personlige certifikat …" + +#: ../properties/auth-helpers.c:231 +msgid "Choose your private key…" +msgstr "Vælg din private nøgle …" + +#: ../properties/auth-helpers.c:347 +msgid "Choose a Certificate Authority certificate…" +msgstr "Vælg et certifikat fra certifikatautoritet …" + +#: ../properties/auth-helpers.c:391 +msgid "Choose an OpenVPN static key…" +msgstr "Vælg en statisk OpenVPN-nøgle …" + +#: ../properties/auth-helpers.c:415 ../properties/auth-helpers.c:1165 +#: ../properties/auth-helpers.c:1928 +msgid "None" +msgstr "Ingen" + +#: ../properties/auth-helpers.c:857 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM- eller PKCS#12-certifikater (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:858 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM-certifikater (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:918 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statiske OpenVPN-nøgler (*.key)" + +#: ../properties/auth-helpers.c:1063 ../properties/auth-helpers.c:1157 +msgid "Default" +msgstr "Standard" + +#: ../properties/auth-helpers.c:1167 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1169 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1171 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1173 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1175 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1177 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1179 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1181 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1224 +msgid "Don’t verify certificate identification" +msgstr "Bekræft ikke certifikatidentifikation" + +# https://technet.microsoft.com/en-us/library/cc753994(v=ws.11).aspx +# Vælger ikke at forsøge at finde et dansk ord +#: ../properties/auth-helpers.c:1230 +msgid "Verify whole subject exactly" +msgstr "Bekræft hele subjektet præcist" + +#: ../properties/auth-helpers.c:1236 +msgid "Verify name exactly" +msgstr "Bekræft navn præcist" + +#: ../properties/auth-helpers.c:1242 +msgid "Verify name by prefix" +msgstr "Bekræft navn efter præfiks" + +#: ../properties/auth-helpers.c:1248 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Bekræft subjektet delvist (ældre tilstand, frarådes på det kraftigste)" + +#: ../properties/auth-helpers.c:1362 ../properties/auth-helpers.c:1428 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1367 ../properties/auth-helpers.c:1433 +msgid "Client" +msgstr "Klient" + +#: ../properties/auth-helpers.c:1714 ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Not required" +msgstr "Ikke krævet" + +#: ../properties/auth-helpers.c:1716 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1718 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1840 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1842 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1849 +msgid "(automatic)" +msgstr "(automatisk)" + +#: ../properties/auth-helpers.c:1976 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1978 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:185 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "valgmuligheden %s forventer mellem %u og %u argument" +msgstr[1] "valgmuligheden %s forventer mellem %u og %u argumenter" + +#: ../properties/import-export.c:190 +#, c-format +msgid "option %s expects no arguments" +msgstr "valgmuligheden %s forventer ingen argumenter" + +#: ../properties/import-export.c:192 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "valgmuligheden %s forventer nøjagtigt %u argument" +msgstr[1] "valgmuligheden %s forventer nøjagtigt %u argumenter" + +#: ../properties/import-export.c:221 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argumentet %s til \"%s\" kan ikke være tomt" + +#: ../properties/import-export.c:223 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argumentet til \"%s\" kan ikke være tomt" + +#: ../properties/import-export.c:239 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argumentet %s til \"%s\" skal være kodet i UTF-8" + +#: ../properties/import-export.c:241 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argumentet til \"%s\" skal være kodet i UTF-8" + +# betyder %uth et ordenstal (f.eks. 4th) - og i givet fald hvad så med første, anden og tredje? +#: ../properties/import-export.c:265 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "ugyldigt %u. argument til \"%s\" hvor tal blev forventet" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:306 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "ikke-understøttet %u. argument %s til \"%s\"" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:324 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"argument %u til \"%s\" understøttes ikke; det ser ud som en FQDN, men kun " +"IPv4-adresser understøttes" + +#: ../properties/import-export.c:331 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "ugyldigt %u. argument til \"%s\", hvor IPv4-adresse blev forventet" + +#: ../properties/import-export.c:356 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "ugyldig %u. nøgleretningsargument til \"%s\"" + +#: ../properties/import-export.c:370 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "ugyldigt %u. argument til \"%s\"" + +#: ../properties/import-export.c:485 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "uafsluttet %s ved position %lld" + +#: ../properties/import-export.c:486 +msgid "double quote" +msgstr "dobbelt anførselstegn" + +#: ../properties/import-export.c:486 +msgid "single quote" +msgstr "enkelt anførselstegn" + +#: ../properties/import-export.c:502 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "afsluttende undvige-backslash ved position %lld" + +#: ../properties/import-export.c:632 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "ikke i stand til at læse auth-fil til HTTP-proxy" + +#: ../properties/import-export.c:650 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "kan ikke læse bruger/adgangskode fra auth-fil til HTTP-proxy" + +#: ../properties/import-export.c:658 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "bruger/adgangskode fra auth-fil til HTTP-proxy skal være kodet i UTF-8" + +#: ../properties/import-export.c:720 +#, c-format +msgid "“%s” is not a directory" +msgstr "\"%s\" er ikke en mappe" + +#: ../properties/import-export.c:728 +#, c-format +msgid "cannot create “%s” directory" +msgstr "kan ikke oprette mappen \"%s\"" + +#: ../properties/import-export.c:748 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "kan ikke skrive blobben <%s> fra linje %ld til fil (%s)" + +#: ../properties/import-export.c:765 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "kan ikke skrive blobben <%s> fra linje %ld til fil \"%s\"" + +#: ../properties/import-export.c:932 ../properties/import-export.c:1288 +#, c-format +msgid "invalid option" +msgstr "ugyldigt tilvalg" + +#: ../properties/import-export.c:971 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "ikke-understøttet argument til comp-lzo" + +#: ../properties/import-export.c:1067 +#, c-format +msgid "remote cannot contain space" +msgstr "fjernsted kan ikke indeholde mellemrum" + +#: ../properties/import-export.c:1071 +#, c-format +msgid "remote cannot contain comma" +msgstr "fjernsted kan ikke indeholde komma" + +#: ../properties/import-export.c:1082 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "fjernsted forventer protokol enten udp eller remote" + +#: ../properties/import-export.c:1272 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "ugyldig type af verify-x509-name" + +#: ../properties/import-export.c:1411 +#, c-format +msgid "unsupported blob/xml element" +msgstr "ikke-understøttet blob-/xml-element" + +#: ../properties/import-export.c:1440 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "uafsluttet blob-element <%s>" + +#: ../properties/import-export.c:1490 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "konfigurationsfejl: %s (linje %ld)" + +#: ../properties/import-export.c:1491 +msgid "unknown or unsupported option" +msgstr "ukendt eller ikke-understøttet tilvalg" + +#: ../properties/import-export.c:1501 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "" +"Filen, der skulle importeres, var ikke en gyldig OpenVPN-klientkonfiguration" + +#: ../properties/import-export.c:1509 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Filen, der skulle importeres, var ikke en gyldig OpenVPN-klientkonfiguration " +"(ingen remote)" + +#: ../properties/import-export.c:1741 +msgid "missing path argument" +msgstr "manglende stiargument" + +#: ../properties/import-export.c:1751 +msgid "connection is not a valid OpenVPN connection" +msgstr "forbindelsen er ikke en gyldig OpenVPN-forbindelse" + +#: ../properties/import-export.c:1760 +msgid "connection was incomplete (missing gateway)" +msgstr "forbindelsen var ufuldstændig (manglende gateway)" + +#: ../properties/import-export.c:2089 +#, c-format +msgid "failed to write file: %s" +msgstr "kunne ikke skrive fil: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibel med OpenVPN-serveren." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "ukendt OpenVPN-filendelse" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Certificates (TLS)" +msgstr "Certifikater (TLS)" + +#: ../properties/nm-openvpn-editor.c:320 +msgid "Password" +msgstr "Adgangskode" + +#: ../properties/nm-openvpn-editor.c:333 +msgid "Password with Certificates (TLS)" +msgstr "Adgangskode med certifikater (TLS)" + +#: ../properties/nm-openvpn-editor.c:345 +msgid "Static Key" +msgstr "Statisk nøgle" + +#: ../properties/nm-openvpn-editor.c:500 +msgid "could not create openvpn object" +msgstr "kunne ikke oprette openvpn-objekt" + +#: ../properties/nm-openvpn-editor.c:526 +msgid "could not load UI widget" +msgstr "kunne ikke indlæse UI-kontrol" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:312 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "objektklassen \"%s\" har ingen egenskab ved navn \"%s\"" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:319 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "egenskaben \"%s\" for objektklassen \"%s\" er skrivebeskyttet" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:326 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"construct-egenskaben \"%s\" for objektet \"%s\" kan ikke angives efter " +"konstruktion" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:334 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"\"%s::%s\" er ikke et gyldigt egenskabsnavn; \"%s\" er ikke en GObjekt-" +"undertype" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:343 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"kan ikke angive egenskaben \"%s\" af type \"%s\" ud fra værdien af typen \"%s" +"\"" + +# streng findes også i applet +#: ../shared/nm-utils/nm-shared-utils.c:354 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"værdien \"%s\" af typen \"%s\" er ugyldig eller uden for intervallet for " +"egenskaben \"%s\" af typen \"%s\"" + +# streng findes også i vpnc +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "manglende udvidelsesmodulfil \"%s\"" + +# streng findes også i vpnc +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "kan ikke indlæse udvidelsesmodul til redigering: %s" + +# streng findes også i vpnc +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "kan ikke indlæse fabrikken %s fra udvidelsesmodul: %s" + +# streng findes også i vpnc +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "ukendt fejl i forsøget på at danne redigeringsinstans" + +#: ../src/nm-openvpn-service.c:473 +#, c-format +msgid "invalid address “%s”" +msgstr "ugyldig adresse \"%s\"" + +# streng findes også i vpnc +#: ../src/nm-openvpn-service.c:485 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "ugyldig heltalsegenskab \"%s\" eller uden for interval [%d -> %d]" + +# streng findes også i vpnc +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:496 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "ugyldig boolesk egenskab \"%s\" (ikke ja eller nej)" + +# streng findes også i vpnc +#: ../src/nm-openvpn-service.c:503 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "uhåndteret egenskab \"%s\" type %s" + +# streng findes også i vpnc +#: ../src/nm-openvpn-service.c:514 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "egenskaben \"%s\" er ugyldig eller ikke understøttet" + +# streng findes også i vpnc +#: ../src/nm-openvpn-service.c:530 +msgid "No VPN configuration options." +msgstr "Ingen indstillinger for VPN-konfiguration." + +#: ../src/nm-openvpn-service.c:699 +msgid "A username is required." +msgstr "Brugernavn er krævet." + +#: ../src/nm-openvpn-service.c:703 +msgid "A password is required." +msgstr "Adgangskode er krævet." + +#: ../src/nm-openvpn-service.c:706 +msgid "A username and password are required." +msgstr "Både brugernavn og adgangskode er krævet." + +#: ../src/nm-openvpn-service.c:726 +msgid "A private key password is required." +msgstr "Adgangskode til privat nøgle er krævet." + +#: ../src/nm-openvpn-service.c:739 +msgid "An HTTP Proxy username is required." +msgstr "Brugernavn til HTTP-proxy er krævet." + +#: ../src/nm-openvpn-service.c:743 +msgid "An HTTP Proxy password is required." +msgstr "Adgangskode til HTTP-proxy er krævet." + +#: ../src/nm-openvpn-service.c:746 +msgid "An HTTP Proxy username and password are required." +msgstr "Både brugernavn og adgangskode til HTTP-proxy er krævet." + +# streng også i vpnc +#: ../src/nm-openvpn-service.c:1224 ../src/nm-openvpn-service.c:2007 +#: ../src/nm-openvpn-service.c:2041 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Kunne ikke behandle forespørgslen, da forbindelsesindstillingerne for VPN " +"var ugyldige." + +#: ../src/nm-openvpn-service.c:1233 ../src/nm-openvpn-service.c:2016 +msgid "Invalid connection type." +msgstr "Ugyldig forbindelsestype." + +#: ../src/nm-openvpn-service.c:1251 +msgid "Could not find the openvpn binary." +msgstr "Kunne ikke finde binærfil for openvpn." + +#: ../src/nm-openvpn-service.c:1261 +msgid "Invalid HMAC auth." +msgstr "Ugyldig HMAC-godkendelse." + +#: ../src/nm-openvpn-service.c:1303 ../src/nm-openvpn-service.c:1311 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Portnummeret \"%s\" er ugyldigt." + +#: ../src/nm-openvpn-service.c:1327 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Ugyldig proto \"%s\"." + +#: ../src/nm-openvpn-service.c:1369 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Proxytypen \"%s\" er ugyldig." + +#: ../src/nm-openvpn-service.c:1417 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Varigheden \"%s\" af ping er ugyldig." + +#: ../src/nm-openvpn-service.c:1430 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Varigheden \"%s\" af ping-exit er ugyldig." + +#: ../src/nm-openvpn-service.c:1443 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Varigheden \"%s\" af ping-restart er ugyldig." + +#: ../src/nm-openvpn-service.c:1462 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Argumentet \"%s\" for max-routes er ugyldigt." + +#: ../src/nm-openvpn-service.c:1517 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Nøglestørrelsen \"%s\" er ugyldig." + +#: ../src/nm-openvpn-service.c:1566 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Ugyldig konfiguration med tls-remote og verify-x509-name." + +#: ../src/nm-openvpn-service.c:1580 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Ugyldigt verify-x509-name." + +#: ../src/nm-openvpn-service.c:1614 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Ugyldigt antal sekunder \"%s\" for reneg." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "TUN MTU-størrelsen \"%s\" er ugyldig." + +#: ../src/nm-openvpn-service.c:1660 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Fragmentstørrelsen \"%s\" er ugyldig." + +#: ../src/nm-openvpn-service.c:1745 +msgid "Missing required local IP address for static key mode." +msgstr "Mangler krævet lokal IP-adresse til statisk nøgletilstand." + +#: ../src/nm-openvpn-service.c:1756 +msgid "Missing required remote IP address for static key mode." +msgstr "Mangler krævet fjern IP-adresse til statisk nøgletilstand." + +#: ../src/nm-openvpn-service.c:1780 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Forbindelsestypen \"%s\" er ukendt." + +#: ../src/nm-openvpn-service.c:1799 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Brugeren \"%s\" blev ikke fundet; tjek NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1812 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Gruppen \"%s\" blev ikke fundet; tjek NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:2054 +msgid "Unhandled pending authentication." +msgstr "Uhåndteret afventende godkendelse." + +#: ../src/nm-openvpn-service.c:2173 +msgid "Don’t quit when VPN connection terminates" +msgstr "Afslut ikke, når VPN-forbindelsen lukkes" + +#: ../src/nm-openvpn-service.c:2174 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Aktivér udførlig fejlsøgningslogning (kan afsløre adgangskoder)" + +# streng findes også i vpnc +#: ../src/nm-openvpn-service.c:2175 +msgid "D-Bus name to use for this instance" +msgstr "Navn på D-Bus der skal bruges i dette tilfælde" + +#: ../src/nm-openvpn-service.c:2201 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service tilbyder integreret OpenVPN-understøttelse til " +"Netværkshåndtering." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid "General" +msgstr "Generelt" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Fjernservergateways med valgfri port og protokol (f.eks. ovpn.corp.com:1234:" +"tcp). Du kan angive flere værter af hensyn til redundans (brug komma eller " +"mellemrum som adskillere).\n" +"Konfiguration: fjern" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Authentication" +msgstr "Godkendelse" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "_Show passwords" +msgstr "_Vis adgangskoder" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "Password for private key" +msgstr "Adgangskode til privat nøgle" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Private Key Password:" +msgstr "Adgangskode til privat nøgle:" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "" +"Local peer’s private key in .pem format.\n" +"config: key" +msgstr "" +"Lokal peers private nøgle i .pem-format.\n" +"Konfiguration: key" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Private Key:" +msgstr "Privat nøgle:" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Certifikatautoritet-fil (CA) i .pem-format.\n" +"Konfiguration: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "CA Certificate:" +msgstr "CA-certifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "User Certificate:" +msgstr "Brugercertifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "" +"Local peer’s signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Lokal peers signerede certifikat i .pem-format (signeret af CA fra CA-" +"certifikat).\n" +"Konfiguration: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Adgangskode sendes til OpenVPN, når der spørges efter den.\n" +"Konfiguration: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "User name:" +msgstr "Brugernavn:" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Brugernavn sendes til OpenVPN, når der spørges efter det.\n" +"Konfiguration: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:24 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Det lokale VPN-slutpunkts IP-adresse.\n" +"Konfiguration: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:26 +msgid "Remote IP Address:" +msgstr "Fjernsteds IP-adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Local IP Address:" +msgstr "Lokal IP-adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Fjernsteds VPN-slutpunkts IP-adresse.\n" +"Konfiguration: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Key Direction:" +msgstr "Nøgleretning:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Static Key:" +msgstr "Statisk nøgle:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Forhåndsdelt fil til statisk nøglekrypteringstilstand (ikke-TLS).\n" +"Konfiguration: static " + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Retning for statisk nøglekrypteringstilstand (ikke-TLS).\n" +"Hvis nøgleretning anvendes, skal den være den modsatte af den nøgleretning, " +"som VPN-peer bruger. Hvis peer f.eks. bruger \"1\", skal denne forbindelse " +"bruge \"0\". Hvis du ikke er sikker på, hvilken værdi du skal bruge, bør du " +"kontakte din systemadministrator.\n" +"Konfiguration: static [retning]" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Type:" +msgstr "Type:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Select an authentication mode." +msgstr "Vælg en godkendelsestilstand." + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Ad_vanced…" +msgstr "A_vanceret …" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "OpenVPN Advanced Options" +msgstr "Avancerede indstillinger til OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "Use custom gateway p_ort:" +msgstr "A_nvend tilpasset port til gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"TCP/UDP-portnummer til peer. (Standardværdi når der ikke er nogen port til " +"gatewayen).\n" +"Konfiguration: port" + +#: ../properties/nm-openvpn-dialog.ui.h:45 +msgid "Use custom _renegotiation interval:" +msgstr "Brug tilpasset _genforhandlingsinterval:" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Genforhandl datakanalnøgle efter det angive antal sekunder.\n" +"Konfiguration: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "Use L_ZO data compression" +msgstr "Anvend L_ZO-datakomprimering" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Anvend hurtig LZO-komprimering.\n" +"Konfiguration: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Vælg tilstanden for LZO-datakomprimering.\n" +"Konfiguration: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Use a _TCP connection" +msgstr "Anvend en _TCP-forbindelse" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Anvend TCP til kommunikation med fjernvært.\n" +"(Dette er en standardindstilling, som kun anvendes, når der ikke er angivet " +"en protokol til gatewayen.)\n" +"Konfiguration: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Set virtual _device type:" +msgstr "Angiv virtuel enhedst_ype:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Angiv eksplicit virtuel enhedstype og -navn (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Angiv eksplicit virtuel enhedstype og -navn (TUN/TAP).\n" +"Konfiguration: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid " and _name:" +msgstr " og na_vn:" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Anvend tilpasset navn for virtuel TUN/TAP-enhed (i stedet for \"tun\" eller " +"\"tap\" som standard).\n" +"Konfiguration: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Anvend tilpasset maksimal transmissionsenhed (MTU) for t_unnel:" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Lad TUN-enhedens MTU være den angivne værdi og afled link-MTU'en fra den.\n" +"Konfiguration: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "Use custom UDP _fragment size:" +msgstr "Anvend tilpasset UDP-_fragmentstørrelse:" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Aktivér intern datagramfragmentering med denne maksimale størrelse.\n" +"Konfiguration: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Begræns den maksimale _segmentstørrelse (MSS) for tunnel-TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Begræns TCP-MSS for tunnel.\n" +"Konfiguration: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "Rando_mize remote hosts" +msgstr "_Bland fjernværter" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Bland rækkefølgen af gatewaylisten (remote) som en slags basal " +"foranstaltning til justering af belastning.\n" +"Konfiguration: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "IPv6 tun link" +msgstr "IPv6-tun-link" + +# Sat punktum, fordi det er i alle lignende strenge +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Byg et tun-link, som er i stand til at videresende IPv6-trafik.\n" +"Konfiguration: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Acceptér godkendte pakker fra alle adresser (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Tillad at fjernpeer ændrer sin IP-adresse og/eller portnummer f.eks. pga. " +"DHCP (dette er standard, hvis --remote ikke anvendes). Når --float angives " +"med --remote, tillader det, at en OpenVPN-session kan forbinde til en peer " +"på en kendt adresse, men hvis pakker ankommer fra en ny adresse og består " +"alle godkendelsestest, vil den nye adresse overtage sessionen. Dette er " +"nyttigt, når du forbinder til en peer, som har en dynamsisk adresse som f." +"eks. en opkaldsbruger eller en DHCP-klient.\n" +"\n" +"Alt i alt får --float OpenVPN til at acceptere godkendte pakker fra alle " +"adresser og ikke kun adressen angivet med tilvalget --remote.\n" +"\n" +"Konfiguration: float" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "Specify pin_g interval:" +msgstr "Angiv _ping-interval:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Ping fjernserver over TCP/UDP-kontrolkanalen, hvis der ikke er blevet sendt " +"nogen pakker i mindst n sekunder.\n" +"Konfiguration: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "Specify max routes:" +msgstr "Angiv maks. antal ruter:" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Angiv det maksimale antal ruter, serveren må angive.\n" +"Konfiguration: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "Specify _exit or restart ping:" +msgstr "Angiv afslutning _eller genstart ifølge ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Afslut eller genstart efter n sekunder uden modtagelse af et ping eller en " +"anden pakke fra fjernsted.\n" +"Konfiguration: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Kryptér pakker med krypteringsalgoritme. Standarden er BF-CBC (Blowfish i " +"Cipher Block Chaining-tilstand).\n" +"Konfiguration: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Use custom _size of cipher key:" +msgstr "Brug tilpasset _størrelse på krypteringsalgoritmenøgle:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Angiv krypteringsalgoritmens nøglestørrelse til en tilpasset værdi. Hvis " +"ikke angivet, er størrelsen specifik for krypteringsalgoritmen.\n" +"Konfiguration: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Godkend pakker med HMAC med brug af \"message digest\"-algoritme. Standarden " +"er SHA1.\n" +"Konfiguration: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "Ci_pher:" +msgstr "_Krypteringsalgoritme:" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "_HMAC Authentication:" +msgstr "_HMAC-godkendelse:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Security" +msgstr "Sikkerhed" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "_Subject Match:" +msgstr "_Subjektmatch:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Subjekt eller fælles navn til bekræftelse af serverens " +"certifikatinformation.\n" +"\n" +"Konfiguration: verify-x509-name subjekt-eller-navn [tilstand]\n" +"Konfiguration (ældre): tls-remote subjekt-eller-navn" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Certificate Check:" +msgstr "Server_certifikatkontrol:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Bekræft identifikation af servercertifikat.\n" +"\n" +"Når aktiveret vil forbindelse kun kunne lykkes, hvis serverens certifikat " +"har nogle forventede egenskaber.\n" +"Dette kan enten omfatte hele certifikatsubjektet (alle felter)\n" +"eller kun fælles navn (CN-feltet).\n" +"\n" +"Det ældre tilvalg tls-remote frarådes og er fjernet i OpenVPN 2.4 og nyere. " +"Lad være med at bruge det.\n" +"\n" +"Konfiguration: verify-x509-name subjekt-eller-navn [tilstand]\n" +"Konfiguration (ældre): tls-remote subjekt-eller-navn" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Bekræft brugssignatur for certifikat fra peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Kræv at peercertifikatet blev signeret med en eksplicit nøglebrug og udvidet " +"nøglebrug baseret på TLS-reglerne fra RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Remote peer certificate TLS type:" +msgstr "TLS-type af fje_rnpeers certifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Kræv at peercertifikatet blev signeret med en eksplicit nøglebrug og udvidet " +"nøglebrug baseret på TLS-reglerne fra RFC3280.\n" +"Konfiguration: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Bekræft nsCertType-betegnelse for certifikat fra peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Kræv at peercertifikatet blev signeret med en eksplicit nsCertType-" +"betegnelse." + +#: ../properties/nm-openvpn-dialog.ui.h:127 +msgid "_Remote peer certificate nsCert designation:" +msgstr "nsCertType-betegnelse for certifikat fra _fjernpeer :" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Kræv at peercertifikatet blev signeret med en eksplicit nsCertType-" +"betegnelse.\n" +"Konfiguration: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Use additional _TLS authentication" +msgstr "Anvend yderligere _TLS-godkendelse" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of HMAC authentication." +msgstr "Tilføj et yderligere lag af HMAC-godkendelse." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Key _Direction:" +msgstr "N_øgleretning:" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Tilføj et yderligere lag af HMAC-godkendelse oven på TLS-kontrolkanalen for " +"at beskytte mod DoS-angreb.\n" +"Konfiguration: tls-auth [retning]" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Retningsparameter for statisk nøgle-tilstand.\n" +"Hvis nøgleretning anvendes, skal den være den modsatte af den nøgleretning, " +"som VPN-peer bruger. Hvis peer f.eks. bruger \"1\", skal denne forbindelse " +"bruge \"0\". Hvis du ikke er sikker på, hvilken værdi du skal bruge, bør du " +"kontakte din systemadministrator.\n" +"Konfiguration: tls-auth [retning]" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Key _File:" +msgstr "Nø_glefil:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "TLS Authentication" +msgstr "TLS-godkendelse" + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxytype: HTTP eller socks.\n" +"Konfiguration: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "Proxy _Type:" +msgstr "_Proxytype:" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Vælg denne indstilling, hvis din organisation kræver brug af en " +"proxyserver for at få adgang til internettet." + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "Server _Address:" +msgstr "_Serveradresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Forbind til en fjernvært gennem en proxy med denne adresse.\n" +"Konfiguration: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "_Port:" +msgstr "Po_rt:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Forbind til en fjernvært gennem en proxy med denne port.\n" +"Konfiguration: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "_Retry indefinitely when errors occur" +msgstr "Pr_øv igen i det uendelige, når der opstår fejl" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Prøv igen i det uendelige ved proxyfejl. Det simulerer en SIGUSR1-" +"nulstilling.\n" +"Konfiguration: http-proxy-retry eller socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Proxy _Username:" +msgstr "Proxybr_ugernavn:" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Proxy Passwor_d:" +msgstr "Proxyad_gangskode:" + +#: ../properties/nm-openvpn-dialog.ui.h:155 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/socks-proxybrugernavn sendes til OpenVPN, når der spørges efter det." + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/socks-proxyadgangskode sendes til OpenVPN, når der spørges efter den." + +#: ../properties/nm-openvpn-dialog.ui.h:157 +msgid "_Show password" +msgstr "_Vis adgangskode" + +#: ../properties/nm-openvpn-dialog.ui.h:158 +msgid "Proxies" +msgstr "Proxyer" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..67156a6 --- /dev/null +++ b/po/de.po @@ -0,0 +1,1383 @@ +# German translation of NetworkManager-OpenVPN. +# Copyright (C) 2005 Dan Williams +# This file is distributed under the same license as the NetworkManager package. +# Thomas Gier , 2007. +# Hauke Mehrtens , 2008. +# Mario Blättermann , 2009-2011, 2016-2017. +# Christoph Göhre , 2009. +# Christian Kirbach , 2008-2010, 2012. +# Wolfgang Stöggl , 2012, 2016. +# Bernd Homuth , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-09-28 12:20+0000\n" +"PO-Revision-Date: 2017-10-03 17:53+0200\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: Deutsch \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN-Client" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Client für virtuelle private OpenVPN-Netzwerke" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Unterstützung für die Einrichtung virtueller privater OpenVPN-" +"Netzwerkverbindungen." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" +"OpenVPN ist eine populäre, flexible und auf freier Software basierende VPN-" +"Lösung." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Die NetworkManager-Entwickler" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "VPN %s legitimieren" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Password:" +msgstr "Passwort:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Zertifikatspasswort:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Passwort für HTTP-Proxy:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "VPN legitimieren" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Zertifikatspass_wort:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Passwort für _HTTP-Proxy:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Sie müssen sich legitimieren, um auf das Virtuelle Private Netz »%s« " +"zuzugreifen." + +#: ../properties/auth-helpers.c:280 +msgid "Choose an OpenVPN static key…" +msgstr "Statischen OpenVPN-Schlüssel auswählen …" + +# CHECK keine/keiner +#: ../properties/auth-helpers.c:304 ../properties/auth-helpers.c:967 +#: ../properties/auth-helpers.c:1732 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "keine" + +#: ../properties/auth-helpers.c:718 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statische OpenVPN-Schlüssel (*.key)" + +#: ../properties/auth-helpers.c:865 ../properties/auth-helpers.c:959 +msgid "Default" +msgstr "Vorgabe" + +#: ../properties/auth-helpers.c:969 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:971 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:973 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:975 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:977 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:979 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:981 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:983 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1026 +msgid "Don’t verify certificate identification" +msgstr "Identifizierung des Zertifikats nicht überprüfen" + +#: ../properties/auth-helpers.c:1032 +msgid "Verify whole subject exactly" +msgstr "Betreff exakt überprüfen" + +#: ../properties/auth-helpers.c:1038 +msgid "Verify name exactly" +msgstr "Name genau überprüfen" + +#: ../properties/auth-helpers.c:1044 +msgid "Verify name by prefix" +msgstr "Namen anhand des Präfix überprüfen" + +#: ../properties/auth-helpers.c:1050 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Betreff teilweise überprüfen (veralteter Modus, wir raten entschieden davon " +"ab)" + +#: ../properties/auth-helpers.c:1164 ../properties/auth-helpers.c:1235 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1169 ../properties/auth-helpers.c:1240 +msgid "Client" +msgstr "Client" + +#: ../properties/auth-helpers.c:1533 ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Not required" +msgstr "Nicht notwendig" + +#: ../properties/auth-helpers.c:1535 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1537 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automatisch)" + +#: ../properties/auth-helpers.c:1792 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1794 +msgid "ping-restart" +msgstr "ping-restart" + +# Der Singular ist hier zwar unsinnig, aber so geht es wohl erst mal. +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "Option %s erwartet zwischen %u und %u Argument" +msgstr[1] "Option %s erwartet zwischen %u und %u Argumenten" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "Option %s erwartet keine Angaben" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "Option %s erwartet genau ein Argument" +msgstr[1] "Option %s erwartet genau %u Argumente" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "Argument %s von »%s« darf nicht leer sein" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "Argument von »%s« darf nicht leer sein" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "Argument %s von »%s« muss als UTF-8 kodiert sein" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "Argument %s muss als UTF-8 kodiert sein" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "Argument %u für »%s« ist ungültig. Eine Zahl wird erwartet." + +# Dieses %uth scheint eine Ordnungszahl zu sein. +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "%u. Argument %s ist ungültig für »%s«" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"%u. Argument für »%s« ist ungültig, das nach einem FQDN aussieht, aber es " +"werden nur IPv4-Adressen unterstützt." + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "Argument %u für »%s« ist ungültig. Eine IPv4-Adresse wird erwartet." + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "Ungültiges %u. key-direction-Argument für »%s«" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "%u. Argument ist ungültig für »%s«" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "Nicht abgeschlossenes %s an Position %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "Doppeltes Zitatzeichen" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "Einfaches Zitatzeichen" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "Angehängter maskierender Rückschrägstrich bei Position %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "Authentifizierungsdatei des HTTP-Proxys kann nicht gelesen werden" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"Benutzername und Passwort können nicht aus Authentifizierungsdatei des HTTP-" +"Proxys gelesen werden" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"Benutzername und Passwort der Authentifizierungsdatei des HTTP-Proxys müssen " +"als UTF-8 kodiert sein" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "»%s« ist kein Ordner" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "Ordner »%s« kann nicht angelegt werden" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "nicht unterstütztes Argument für mtu-disc" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "Ungültige Option" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nicht unterstütztes Argument für comp-lzo" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "Gegenstelle darf kein Leerzeichen enthalten" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "Gegenstelle darf kein Komma enthalten" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "Gegenstelle erwartet einen Protokolltyp wie »udp« oder »tcp«" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "Nicht unterstütztes blob/xml-Element" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "Nicht abgeschlossenes blob-Element <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "Konfigurationsfehler: %s (Zeile %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "Nicht unterstützte oder unbekannte Option" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "" +"Die zu importierende Datei war keine gültige OpenVPN-Client-Konfiguration." + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Die zu importierende Datei war keine gültige OpenVPN-Konfiguration (keine " +"Gegenstelle)." + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "Pfad-Argument fehlt" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "Verbindung ist keine gültige OpenVPN-Verbindung" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "Verbindung war unvollständig (Gateway fehlt)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "Datei konnte nicht geschrieben werden: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibel zum OpenVPN-Server." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "Unbekannte OpenVPN-Dateierweiterung" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Zertifikate (TLS):" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Passwort" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Passwort und Zertifikate (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Statischer Schlüssel" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "openvpn-Objekt konnte nicht erzeugt werden." + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "UI-Widget konnte nicht geladen werden" + +#: ../shared/nm-utils/nm-shared-utils.c:619 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "Objektklasse »%s« hat keine Eigenschaft namens »%s«" + +#: ../shared/nm-utils/nm-shared-utils.c:626 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "Eigenschaft »%s« der Objektklasse »%s« ist nicht schreibgeschützt" + +#: ../shared/nm-utils/nm-shared-utils.c:633 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"Konstruktor-Eigenschaft »%s« für Objekt »%s« kann nicht nach der " +"Konstruktion gesetzt werden" + +#: ../shared/nm-utils/nm-shared-utils.c:641 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"»%s::%s« ist kein gültiger Eigenschaftsname; »%s« ist kein GObject-Subtyp" + +#: ../shared/nm-utils/nm-shared-utils.c:650 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"Eigenschaft »%s« des Typs »%s« kann nicht aus dem Wert des Typs »%s« gesetzt " +"werden" + +#: ../shared/nm-utils/nm-shared-utils.c:661 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"Wert »%s« des Typs »%s« ist ungültig oder außerhalb des zulässigen Bereichs " +"der Eigenschaft »%s« des Typs »%s«" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "Erweiterungs-Datei »%s« fehlt" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "Editor-Erweiterung kann nicht geladen werden: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "Factory %s kann nicht aus Erweiterung geladen werden: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "Unbekannter Fehler beim Erzeugen der Editor-Instanz" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "Ungültiges Trennungszeichen »%c«" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "Ungültiges Nicht-UTF8-Zeichen" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "Leerer Host" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "Ungültiger Port" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "Ungültiges Protokoll" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "Ungültige Adresse »%s«" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "" +"Ungültige Ganzzahl-Eigenschaft »%s« oder außerhalb des Bereichs [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "Ungültige boolesche Eigenschaft »%s« (nicht »yes« oder »no«)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "Unbehandelte Eigenschaft »%s« des Typs %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "Eigenschaft »%s« ist ungültig oder wird nicht unterstützt" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Keine VPN-Konfigurationsoptionen." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Ein Benutzername ist notwendig." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Ein Passwort ist notwendig." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Benutzername und Passwort erforderlich." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Ein Passwort ist für den privaten Schlüssel notwendig." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Ein Benutzername ist für den HTTP-Proxy notwendig." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Ein Passwort ist für den HTTP-Proxy notwendig." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Benutzername und Passwort sind für den HTTP-Proxy notwendig." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Aufgrund ungültiger VPN-Verbindungseinstellungen konnte die Anfrage nicht " +"verarbeitet werden." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Ungültiger Verbindungstyp." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Openvpn-Binärdatei konnte nicht gefunden werden." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Ungültige HMAC-Legitimierung." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Ungültige Portnummer »%s«." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Ungültiges Protokoll »%s«." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Ungültiger Proxy-Typ »%s«." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Ungültige Ping-Dauer »%s«." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Ungültige Ping-exit-Dauer »%s«." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Ungültige Ping-restart-Dauer »%s«." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Maximalrouten-Argument ist ungültig für »%s«." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Ungültige Schlüsselgröße »%s«." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Ungültige Konfiguration mit tls-remote und verify-x509-name." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Ungültiger verify-x509-name." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Ungültige reneg-Sekunden »%s«." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Ungültige TUN-MTU-Größe »%s«." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Ungültige Fragmentgröße »%s«." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Unbekannter Verbindungstyp »%s«." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Benutzer »%s« nicht gefunden. Prüfen Sie NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Gruppe »%s« nicht gefunden. Prüfen Sie NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Nicht verarbeitete, wartende Legitimierung." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Nicht beenden, wenn die VPN-Verbindung beendet wird" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Ausführliche Protokollierung zur Fehlerdiagnose erlauben (könnte Passwörter " +"sichtbar machen)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "Für diese Instanz zu verwendender D-Bus-Name" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service integriert OpenVPN-Funktionalität in NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Vielleicht" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Ja" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Allgemein" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Entfernte/r Gateway/s mit optionalem Port und Protokoll (z.B. ovpn.server." +"org:1234:tcp). Sie können für eine höhere Redundanz mehrere Gegenstellen " +"getrennt durch Kommata oder Leerzeichen angeben.\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Legitimierung" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "CA" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User" +msgstr "Benutzer" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "User name:" +msgstr "Benutzername:" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"An OpenVPN zu übergebendes Passwort, sobald danach gefragt wird.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"An OpenVPN übergebener Benutzername, wenn danach gefragt wird.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Remote IP Address:" +msgstr "Entfernte IP-Adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Local IP Address:" +msgstr "Lokale IP-Adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Key Direction:" +msgstr "Schlüsselrichtung:" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "Static Key:" +msgstr "Statischer Schlüssel:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Voreingestellte Datei für Verschlüsselungsmodus des statischen Schlüssels " +"(Nicht-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP-Adresse des entfernten Endpunktes des VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP-Adresse des lokalen Endpunktes des VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Richtung für Verschlüsselung mit statischen Schlüsseln (Nicht-TLS)\n" +"Falls eine Schlüsselrichtung verwendet wird, muss sie dem Gegenteil der " +"Gegenstelle entsprechen. Falls die Gegenstelle zum Beispiel »1« benutzt, " +"muss hier »0« gewählt werden. Sollten Sie sich nicht sicher sein, setzen Sie " +"sich mit Ihrem Systemadministrator in Verbindung.\n" +"config: static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Type:" +msgstr "Art:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Select an authentication mode." +msgstr "Wählen Sie einen Legitimierungsmodus." + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "Ad_vanced…" +msgstr "Er_weitert …" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "OpenVPN Advanced Options" +msgstr "Erweiterte OpenVPN-Einstellungen" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Use custom gateway p_ort:" +msgstr "_Gateway-Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"TCP/UDP-Portnummer für Gegenstelle (Vorgabe, wenn kein Gateway-Port " +"angegeben ist).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Use custom _renegotiation interval:" +msgstr "Benutze_rdefiniertes Intervall für erneute Verhandlung verwenden:" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Datenkanal-Schlüssel nach der angegebenen Anzahl an Sekunden neu " +"aushandeln.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use L_ZO data compression" +msgstr "L_ZO-Komprimierung verwenden" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Schnelle LZO-Kompression verwenden.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"LZO-Datenkompressionsmodus verwenden.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "Use a _TCP connection" +msgstr "_TCP-Verbindung verwenden" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"TCP zur Kommunikation mit der Gegenstelle verwenden.\n" +"(Diese Voreinstellung wird nur verwendet, wenn kein Gateway-Protokoll " +"angegeben wird.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Set virtual _device type:" +msgstr "Virtuellen _Gerätetyp festlegen:" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Den virtuellen Gerätetype und Name explizit setzen (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Explizit den virtuellen Gerätetyp festlegen (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid " and _name:" +msgstr " und _Name:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Benutzerdefinierten Namen für das virtuelle TUN/TAP-Gerät verwenden " +"(anstelle der Vorgabe »tun« oder »tap«).\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Angepasste größte Übertragungseinheit (MTU) für den _Tunnel verwenden:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"MTU des TUN-Gerätes als gegebenen Wert verwenden und daraus die MTU der " +"Schnittstelle ableiten.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom UDP _fragment size:" +msgstr "Angepasste UDP-_Fragmentgröße verwenden:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Interne Datenfragmentierung bis zu dieser Blockgröße erlauben.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Maximale TCP-Segmentgröße (MSS) des Tunnels einschränken" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Die TCP-MSS des Tunnels beschränken.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Rando_mize remote hosts" +msgstr "Entfernte Rechner _zufällig anordnen" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Die Reihenfolge der Gateway-Liste (entfernt) zufällig anordnen, als eine Art " +"einfache Lastverteilung.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "IPv6 tun link" +msgstr "IPv6 tun-Verbindung" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Einen tun-Link mit der Fähigkeit erstellen, IPv6-Verkehr weiterzuleiten\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "Specify _exit or restart ping:" +msgstr "_Abbruch- oder Neustart-Ping angeben:" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Abbrechen oder neu starten, wenn n Sekunden seit einem Ping oder anderem " +"Paket von der Gegenstelle vergangen sind.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Specify pin_g interval:" +msgstr "Pin_g-Intervall:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Entfernter Ping über den TCP/UDP-Steuerkanal, falls für mindestens n " +"Sekunden keine Pakete gesendet wurden.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Legitimierte Pakete von beliebiger Adresse akzeptieren (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Der entfernten Gegenstelle erlauben, deren IP-Adresse und/oder Portnummer zu " +"ändern, wie bei DHCP (Vorgabe, falls --remote nicht verwendet wird). --" +"float, wenn mit --remote verwendet, erlaubt einer OpenVPN-Sitzung zur " +"initialen Verbindung mit einer Gegenstelle mit einer bekannten Adresse. " +"Falls Pakete von einer neuen Adresse eintreffen und alle " +"Legitimierungsprüfungen bestehen, übernimmt die neue Adresse die Kontrolle " +"über die Sitzung. Dies ist sinnvoll, wenn Sie sich mit einer Gegenstelle mit " +"dynamischer Adresse, wie bei einer Einwählverbindung oder einem DHCP-" +"Client.\n" +"\n" +"Grundsätzlich weist --float OpenVPN an, legitimierte Pakete von jeder " +"Adresse zu akzeptieren, nicht nur von der Adresse, die in der Option --" +"remote angegeben wurden.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "Specify max routes:" +msgstr "Maximalrouten angeben:" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Geben Sie die maximale Anzahl der Routen an, die der Server festlegen darf.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Pakete mit einem Verschlüsselungsalgorithmus verschlüsseln. Vorgabe ist BF-" +"CBC (Blowfish im »Cipher Block Chaining«-Modus).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "Use custom _size of cipher key:" +msgstr "Benutzerdefinierte _Größe des Codeschlüssels verwenden:" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Codeschlüsselgröße auf einen benutzerdefinierten Wert setzen. Falls nicht " +"angegeben, wir der Vorgabewert basierend auf dem Codeschlüssel verwendet.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Pakete mit HMAC mittels Nachrichtenzusammenfassungs-Algorithmus " +"legitimieren. Vorgabe ist SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Ci_pher:" +msgstr "Chiffre:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_HMAC Authentication:" +msgstr "HMAC-Legitimierung:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Security" +msgstr "Sicherheit" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_Subject Match:" +msgstr "Betreff-Übereinstimmung:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "Server _Certificate Check:" +msgstr "Überprüfung des Server-_Zertifikats:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Verify peer (server) certificate usage signature" +msgstr "Signatur über die Zertifikatsverwendung des Servers _prüfen" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Verlangen, dass das Zertifikat der Gegenstelle mit einem ausdrücklichen " +"Verwendungsschlüssel sowie erweitertem Verwendungsschlüssel entsprechend " +"RFC3280 TLS-Regeln signiert ist." + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "_Remote peer certificate TLS type:" +msgstr "TLS-Typ des Zertifikats des _entfernten Kommunikationspartners:" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Verlangen, dass das Zertifikat der Gegenstelle mit einem ausdrücklichen " +"Verwendungsschlüssel sowie erweitertem Verwendungsschlüssel entsprechend " +"RFC3280 TLS-Regeln signiert ist.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +#, fuzzy +#| msgid "_Verify peer (server) certificate usage signature" +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "Signatur über die Zertifikatsverwendung des Servers _prüfen" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +#, fuzzy +#| msgid "" +#| "Require that peer certificate was signed with an explicit key usage and " +#| "extended key usage based on RFC3280 TLS rules." +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Verlangen, dass das Zertifikat der Gegenstelle mit einem ausdrücklichen " +"Verwendungsschlüssel sowie erweitertem Verwendungsschlüssel entsprechend " +"RFC3280 TLS-Regeln signiert ist." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +#| msgid "_Remote peer certificate TLS type:" +msgid "_Remote peer certificate nsCert designation:" +msgstr "TLS-Typ des Zertifikats des _entfernten Kommunikationspartners:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +#, fuzzy +#| msgid "" +#| "Require that peer certificate was signed with an explicit key usage and " +#| "extended key usage based on RFC3280 TLS rules.\n" +#| "config: remote-cert-tls client|server" +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Verlangen, dass das Zertifikat der Gegenstelle mit einem ausdrücklichen " +"Verwendungsschlüssel sowie erweitertem Verwendungsschlüssel entsprechend " +"RFC3280 TLS-Regeln signiert ist.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "Key _Direction:" +msgstr "_Schlüsselrichtung:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Eine zusätzliche HMAC-Legitimierungsebene oberhalb des TLS-Steuerkanals " +"hinzufügen, um DoS-Attacken (verteilten Überlastungsangriffen) vorzubeugen.\n" +"config: tls-auth [Richtung]" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Richtungsparameter für den statischen Schlüsselmodus.\n" +"Falls eine Schlüsselrichtung verwendet wird, muss sie dem Gegenteil der " +"Gegenstelle entsprechen. Falls die Gegenstelle zum Beispiel »1« benutzt, " +"muss hier »0« gewählt werden. Sollten Sie sich nicht sicher sein, setzen Sie " +"sich mit Ihrem Systemadministrator in Verbindung.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Key _File:" +msgstr "Schlüsseldatei:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Mode" +msgstr "Modus" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "" +"Zusätzliche Ebene zur Verschlüsselung oder HMAC-Legitimierung hinzufügen." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "Additional TLS authentication or encryption" +msgstr "Zusätzliche TLS-Legitimierung oder Verschlüsselung verwenden" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "TLS Authentication" +msgstr "TLS-Legitimierung" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxy-Typ: HTTP oder Socks.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Proxy _Type:" +msgstr "Proxy-Typ:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Wählen Sie diese Option, falls in Ihrer Organisation ein Proxy-Server zum " +"Zugriff auf das Internet notwendig ist." + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "Server _Address:" +msgstr "Server-Adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Zum entfernten Rechner über einen Proxy mit dieser Adresse verbinden.\n" +"config: http-proxy oder socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "_Port:" +msgstr "Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Zum entfernten Rechner über einen Proxy mit diesem Port verbinden.\n" +"config: http-proxy oder socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:146 +msgid "_Retry indefinitely when errors occur" +msgstr "Auf unbestimmte Zeit _wiederholen, wenn Fehler auftreten" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Bei Proxy-Fehlern auf unbestimmte Zeit erneut versuchen, wodurch ein SIGUSR1-" +"Reset simuliert wird.\n" +"config: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "Proxy _Username:" +msgstr "Proxy-Benutzername:" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "Proxy Passwor_d:" +msgstr "Proxy-Passwort:" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"An OpenVPN zu übergebender HTTP/Socks-Benutzername, sobald danach gefragt " +"wird." + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"An OpenVPN zu übergebendes HTTP/Socks-Passwort, sobald danach gefragt wird." + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "_Show password" +msgstr "Passwort anzeigen" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Proxies" +msgstr "Proxies" + +#: ../properties/nm-openvpn-dialog.ui.h:155 +msgid "Path mtu discovery" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "Misc" +msgstr "" diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 0000000..dc9c714 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,1088 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: networkmanager-openvpn.networkmamager-0-6-0=release.pot\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2007-03-19 15:41+0530\n" +"Last-Translator: sonam pelden \n" +"Language-Team: Dzongkha \n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Poedit-Language: Dzongkha\n" +"X-Poedit-Country: Bhutan\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "ཝི་པི་ཨེན་བདེན་བཤད་འབད་" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "ཆོག་ཡིག: (_P)" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "ལག་ཁྱེལ་ཆོག་ཡིག:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "ཝི་པི་ཨེན་བདེན་བཤད་འབད་" + +#: ../auth-dialog/main.c:232 +#, fuzzy +msgid "Certificate pass_word:" +msgstr "ལག་ཁྱེལ་ཆོག་ཡིག:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "བར་ཅུ་ཡལ་སྒེར་སྡེ་ཡོངས་འབྲེལ་'%s'འཛུལ་སྤྱོད་འབད་ནི་ལུ་ ཁྱོད་ཀྱིས་བདེན་བཤད་འབད་དགོ།" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "ཝི་པི་ཨེན་མཐུད་ལམ་འཛིན་སྐྱོང་པ(ཝི་པི་ཨེན་ཁ་ཕྱེ)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "ཝི་པི་ཨེན་མཐུད་ལམ་ཚུ་ཁ་སྐོང་བརྐྱབ་ནི་རྩ་བསྐྲད་གཏང་ནི་དང་ཞུན་དག་འབད" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +#, fuzzy +msgid "Default" +msgstr "(སྔོན་སྒྲིག: 1194)" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "ཝི་པི་ཨེན་ཁྱེ་བའི་ཞབས་ཏོག་" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "ཊི་ཡུ་ཨེན་" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "ཊི་ཨེ་པི་" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "ཝི་པི་ཨེན་ཁྱེ་བའི་ཞབས་ཏོག་" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "ལག་ཁྱེར:" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "ཆོག་ཡིག་" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "ཝི་པི་ཨེན་ཁ་ཕྱེ་བའི་རིམ་སྒྲིག་" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "འཛུལ་སྒོའི་འདྲེན་ལམ: (_P)" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +#, fuzzy +msgid "Authentication" +msgstr "མཐུད་ལམ་མིང་" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "ཆོག་ཡིག: (_P)" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "ལག་ཁྱེལ་ཆོག་ཡིག:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "ལག་ཁྱེར:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "ལག་ཁྱེར:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "ལག་ལེན་པའི་མིང་:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "ཐག་རིང་གི་ཨའི་པི:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "ཉེ་གནས་ཨའི་པི:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "ཕྱོགས:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +#, fuzzy +msgid "Ad_vanced..." +msgstr "སྔ་གཡར་" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "ཝི་པི་ཨེན་ཁ་ཕྱེ་སྔ་གཡར་གདམ་ཁ་ཚུ་" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "འཛུལ་སྒོའི་འདྲེན་ལམ: (_P)" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "ཨེལ་ཛེརཌི་ཨེབ་བཙུགས་ལག་ལེན་འཐབ་" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "ཨེལ་ཛེརཌི་ཨེབ་བཙུགས་ལག་ལེན་འཐབ་" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "ཊི་སི་པི་མཐུད་ལམ་ལག་ལེན་འཐབ་" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "གསང་ཡིག: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "ཕྱོགས:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "ཝི་པི་ཨེན་བདེན་བཤད་འབད་" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "འཛུལ་སྒོའི་ཁ་བྱང་: (_G)" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "འདྲེན་ལམ: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ལག་ལེན་པའི་མིང་: (_U)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "ཆོག་ཡིག: (_P)" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "ཆོག་ཡིག: (_P)" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "ཝི་པི་ཨེན་ཁ་ཕྱེ་བའི་རིམ་སྒྲིག་" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "མཐུད་ལམ་དབྱེ་བ་" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"ཝི་པི་ཨེན་ནང་བསྐྱོད་འཐུས་ཤོར་བྱུང་ཡོདཔ་ ག་ཅི་སྦེ་ཟེར་བ་ཅིན་ ཝི་པི་ཨེན་རིམ་སྒྲིག་གདམ་ཁ་ཚུ་ནུས་ཅན་མེད།" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "གལ་ནད་ཆུང་བའི་ཆོག་ཡིག: (_S)" + +#~ msgid "_Domain:" +#~ msgstr "ཌོ་མེན་: (_D)" + +#~ msgid "Connect _anonymously" +#~ msgstr "མིང་མེད་ཐོག་ལས་མཐུད།(_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "ལག་ལེན་པ་བཟུམ་སྦེ་མཐུད:(_u)" + +#~ msgid "_Remember password for this session" +#~ msgstr "ལཱ་ཡུན་འདི་གི་དོན་ལུ་ ཆོག་ཡིག་སེམས་ཁར་བཞག(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "ལྡེ་འཁོར་ནང་ ཆོག་ཡིག་སྲུངས་(_S)" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "འོག་གི་ཝི་པི་ཨེན་ཁ་ཕྱེ་བའི་མཐུད་ལམ་འདི་གསར་བསྐྲུན་འབད་ནི་ཨིན:" + +#~ msgid "Name: %s" +#~ msgstr "མིང་:%s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "མཐུད་ལམ་དབྱེ་བ: X.509 ལག་ཁྱེར་" + +#~ msgid "CA: %s" +#~ msgstr "སི་ཨེ: %s" + +#~ msgid "Cert: %s" +#~ msgstr "ངེས་ཅན: %s" + +#~ msgid "Key: %s" +#~ msgstr "ལྡེ་མིག: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "མཐུད་ལམ་དབྱེ་བ: རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག་" + +#~ msgid "Shared Key: %s" +#~ msgstr "རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག་: %s" + +#~ msgid "Local IP: %s" +#~ msgstr "ཉེ་གནས་ཨའི་པི: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "ཐག་རིང་གི་ཨའི་པི: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "མཐུད་ལམ་དབྱེ་བ: ཆོག་ཡིག་" + +#~ msgid "Username: %s" +#~ msgstr "ལག་ལེན་པའི་མིང་: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "མཐུད་ལམ་དབྱེ་བ: X.509འདི་ཆོག་ཡིག་བདེན་བཤད་དང་ཅིག་ཁར་" + +#~ msgid "Remote: %s" +#~ msgstr "ཐག་རིང་གི: %s" + +#~ msgid "Device: %s" +#~ msgstr "ཐབས་འཕྲུལ: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "གནད་སྤེལ་ལམ་ལུགས: %s" + +#~ msgid "TCP" +#~ msgstr "ཊི་སི་པི་" + +#~ msgid "UDP" +#~ msgstr "ཡུ་ཌི་པི་" + +#~ msgid "Routes: %s" +#~ msgstr "འགྲུལ་ལམ: %s" + +#~ msgid "Use LZO Compression: %s" +#~ msgstr "ཨེལ་ཛེརཌི་ཨོ་ཨེབ་བཙུགས་ལག་ལེན་འཐབ: %s" + +#~ msgid "Yes" +#~ msgstr "ཨིན་" + +#~ msgid "No" +#~ msgstr "མེན་" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "ཊི་ཨེལ་ཨེསི་བདེན་བཤད: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "མཐུད་ལམ་རྒྱས་བཤད་ཚུ་ \"Edit\" ཨེབ་རྟ་ལག་ལེན་འཐབ་སྟེ་བསྒྱུར་བཅོས་འབད་ཚུགས།" + +#~ msgid "Cannot import settings" +#~ msgstr "སྒྲིག་སྟངས་ཚུ་ནང་འདྲེན་འབད་མི་ཚུགས་" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "ཝི་པི་ཨེན་སྒྲིག་སྟངས་ཚུའི་ཡིག་སྣོད་'%s' དེ་གིས་ནུས་ཅན་གནས་སྡུད་གནས་ཏེ་མེདཔ་ཨིན།" + +#~ msgid "Select file to import" +#~ msgstr "ནང་འདྲེན་འབད་ནི་ལུ་ཡིག་སྣོད་སེལ་འཐུ་འབད་" + +#~ msgid "Select CA to use" +#~ msgstr "ལག་ལེན་འཐབ་ནི་ལུ་སི་ཨེ་སེལ་འཐུ་འབད་" + +#~ msgid "Select certificate to use" +#~ msgstr "ལག་ལེན་འཐབ་ནི་ལུ་ལག་ཁྱེར་སེལ་འཐུ་འབད་" + +#~ msgid "Select key to use" +#~ msgstr "ལག་ལེན་འཐབ་ནི་ལུ་ལྡེ་མིག་སེལ་འཐུ་འབད་" + +#~ msgid "Select shared key to use" +#~ msgstr "ལག་ལེན་འཐབ་ནི་ལུ་རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག་སེལ་འཐུ་འབད་" + +#~ msgid "Select TA to use" +#~ msgstr "ལག་ལེན་འཐབ་ནི་ལུ་ཊི་ཨེ་སེལ་འཐུ་འབད་" + +#~ msgid "Save as..." +#~ msgstr "དེ་སྦེ་སྲུང་..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "ཡིག་སྣོད་མིང་ \"%s\" ཧེ་མ་ལས་རང་འདུག།" + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "ཁྱོད་ཀྱིས་སྲུང་མི་དང་ཅིག་ཁར་ཁྱོད་ཀྱིས་ཚབ་བཙུགས་ནི་ཨིན་ན?" + +#~ msgid "Failed to export configuration" +#~ msgstr "རིམ་སྒྲིག་ཕྱིར་འདྲེན་འབད་ནི་ལུ་འཐུས་ཤོར་བྱུང་ཡོདཔ་" + +#~ msgid "Failed to save file %s" +#~ msgstr "ཡིག་སྣོད་%sསྲུང་མ་ཚུགས་" + +#~ msgid "0" +#~ msgstr "༠" + +#~ msgid "1" +#~ msgstr "༡" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "Connection Information" +#~ msgstr "མཐུད་ལམ་བརྡ་དོན" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "དཔེར་ན: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "CA file:" +#~ msgstr "སི་ཨེ་ཡིག་སྣོད:" + +#~ msgid "Connection Name" +#~ msgstr "མཐུད་ལམ་མིང་" + +#~ msgid "Key:" +#~ msgstr "ལྡེ་མིག:" + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "སྒེར་སྡེ་ཡོངས་འབྲེལ་ལུ་མཐུད་ལམ་ངོས་འཛིན་འབད་ནི་ལུ་ལག་ལེན་འཐབ་ཡོད་པའི་མིང་ e.g. \"Campus VPN" +#~ "\" or \"Corporate Network\"" + +#~ msgid "Network" +#~ msgstr "ཡོངས་འབྲེལ་" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "འོག་ལུ་ཁྱོད་རའི་རིམ་ལུགས་བདག་སྐྱོང་པ་གིས་བྱིན་ཡོད་པའི་བརྡ་དོན་ཐོ་བཀོད་འབད་གནང་། མཐུད་པའི་བསྒང་" +#~ "ཁྱོད་ཡར་བསྐྱེད་འབདཝ་ལས་ ནཱ་ལུ་ཁྱོད་རའི་ཆོག་ཡིག་མ་བཙུགས། " + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "ཁྱོད་ཀྱིས་ནང་འདྲེན་འབད་མི་ཡིག་སྣོད་འདི་ ཝི་པི་ཨེན་ཁ་ཕྱེ་རིམ་སྒྲིག་ཡིག་སྣོད་མེན་ཟེར་དྲན་འཛིན་འབད། " +#~ "ཁྱོད་རའི་བདག་སྐྱོང་པ་ལུ་ཡིག་སྣོད་དོན་ལུ་དྲི།" + +#~ msgid "Shared key" +#~ msgstr "རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག་" + +#~ msgid "TLS-Auth" +#~ msgstr "ཊི་ཨེལ་ཨེསི་-བདེན་བཤད་" + +#~ msgid "Use TAP device" +#~ msgstr "ཊི་ཨེ་པི་ཐབས་འཕྲུལ་ལག་ལེན་འཐབ་" + +#~ msgid "Use TLS auth:" +#~ msgstr "ཊི་ཨེལ་ཨེསི་བདེན་བཤད་ལག་ལེན་འཐབ:" + +#~ msgid "Use cipher:" +#~ msgstr "གསང་ཡིག་ལག་ལེན་འཐབ:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 ལག་ཁྱེར་ཚུ་\n" +#~ "སྔོན་-རུབ་སྤྱོད་འབད་ཡོད་པའི་ལྡེ་མིག\n" +#~ "ཆོག་ཡིག་བདེན་བཤད\n" +#~ "X.509 ཆོག་ཡིག་བདེན་བཤད་དང་ཅིག་ཁར་" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/རྩིས་སྤྲོད་" + +#~ msgid "_Import Saved Configuration..." +#~ msgstr "སྲུང་བཞག་པའི་རིམ་སྒྲིག་ནང་འདྲེན་འབད... (_I)" + +#~ msgid "_Only use VPN connection for these addresses" +#~ msgstr "ཁ་བྱང་འདི་གི་དོན་ལུ་ ཝི་པི་ཨེན་མཐུད་ལམ་རྐྱངམ་ཅིག་ལག་ལེན་འཐབ། (_O)" + +#~ msgid "none" +#~ msgstr "ཅི་མེད་" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "ཝི་པི་ཨེན་ནང་བསྐྱོད་འཐུས་ཤོར་བྱུང་ཡོདཔ་ ག་ཅི་སྦེ་ཟེར་བ་ཅིན་ ལག་ལེན་པ་དང་ཆོག་ཡིག་དང་ལེན་མ་འབད་" +#~ "བས་ ཡང་ན་ ལག་ཁྱེར་ཆོག་ཡིག་འདི་འཛོལ་བ་འདུག།" + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "ཝི་པི་ཨེན་ནང་བསྐྱོད་འཐུས་ཤོར་བྱུང་ཡོདཔ་ ག་ཅི་སྦེ་ཟེར་བ་ཅིན་ ཝི་པི་ཨེན་འགོ་བཙུགས་མ་ཚུགས།" + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "ཝི་པི་ཨེན་ནང་བསྐྱོད་འཐུས་ཤོར་བྱུང་ཡོདཔ་ ག་ཅི་སྦེ་ཟེར་བ་ཅིན་ ཝི་པི་ཨེན་ལས་རིམ་ཝི་པི་ཨེན་སར་བར་ལུ་" +#~ "མཐུད་མ་ཚུགས།" + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "ཝི་པི་ཨེན་ནང་བསྐྱོད་འཐུས་ཤོར་བྱུང་ཡོདཔ་ག་ཅི་སྦེ་ཟེར་བ་ཅིན་ ཝི་པི་ཨེན་ལས་རིམ་གྱིས་ ཝི་པི་ཨེན་སར་" +#~ "བར་ལས་ནུས་ཅན་མེད་པའི་རིམ་སྒྲིག་ཐོབ་ཡོད།" + +#~ msgid "VPN connection failed" +#~ msgstr "ཝི་པི་ཨེན་མཐུད་ལམ་འཐུས་ཤོར་བྱུང་ཡོད།" diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..ac4f968 --- /dev/null +++ b/po/el.po @@ -0,0 +1,1326 @@ +# translation of NetworkManager-openvpn.HEAD.po to +# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Kostas Papadimas , 2007. +# Jennie Petoumenou , 2008, 2009. +# Michael Kotsarinis , 2011. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2016-04-14 10:36+0000\n" +"PO-Revision-Date: 2016-04-17 21:54+0300\n" +"Last-Translator: Tom Tryfonidis \n" +"Language-Team: team@gnome.gr\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../appdata/network-manager-openvpn.appdata.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Πελάτης OpenVPN" + +#: ../appdata/network-manager-openvpn.appdata.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "" + +#: ../appdata/network-manager-openvpn.appdata.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" + +#: ../appdata/network-manager-openvpn.appdata.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" + +#: ../appdata/network-manager-openvpn.appdata.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Οι προγραμματιστές του NetworkManager" + +#: ../auth-dialog/main.c:180 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Πιστοποίηση VPN %s" + +#: ../auth-dialog/main.c:187 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Κωδικός πρόσβασης:" + +#: ../auth-dialog/main.c:194 +msgid "Certificate password:" +msgstr "Κωδικός πρόσβασης πιστοποιητικού:" + +#: ../auth-dialog/main.c:201 +msgid "HTTP proxy password:" +msgstr "Κωδικός πρόσβασης διαμεσολαβητή HTTP:" + +#: ../auth-dialog/main.c:239 +msgid "Authenticate VPN" +msgstr "Πιστοποίηση VPN" + +#: ../auth-dialog/main.c:248 +msgid "Certificate pass_word:" +msgstr "_Κωδικός πρόσβασης πιστοποιητικού:" + +#: ../auth-dialog/main.c:254 +msgid "_HTTP proxy password:" +msgstr "Κ_ωδικός πρόσβασης διαμεσολαβητή _HTTP:" + +#: ../auth-dialog/main.c:518 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Χρειάζεστε πιστοποίηση για να αποκτήσετε πρόσβαση στο Ιδιωτικό Εικονικό " +"Δίκτυο (VPN) '%s'." + +#: ../properties/auth-helpers.c:167 +msgid "Choose your personal certificate..." +msgstr "Επιλέξτε το προσωπικό σας πιστοποιητικό..." + +#: ../properties/auth-helpers.c:185 +msgid "Choose your private key..." +msgstr "Επιλέξτε το ιδιωτικό σας κλειδί..." + +#: ../properties/auth-helpers.c:301 +msgid "Choose a Certificate Authority certificate..." +msgstr "Επιλέξτε πιστοποιητικό Αρχής Πιστοποίησης..." + +#: ../properties/auth-helpers.c:345 +msgid "Choose an OpenVPN static key..." +msgstr "Επιλέξτε στατικό κλειδί OpenVPN..." + +#: ../properties/auth-helpers.c:369 ../properties/auth-helpers.c:1111 +#: ../properties/auth-helpers.c:1800 +msgid "None" +msgstr "Χωρίς" + +#: ../properties/auth-helpers.c:811 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Πιστοποιητικά PEM ή PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:812 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Πιστοποιητικά PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:872 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Στατικά κλειδιά OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1015 ../properties/auth-helpers.c:1103 +msgid "Default" +msgstr "Προεπιλεγμένο" + +#: ../properties/auth-helpers.c:1113 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1115 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1117 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1119 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1121 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1123 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1125 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1127 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1178 ../properties/auth-helpers.c:1244 +msgid "Server" +msgstr "Διακομιστής" + +#: ../properties/auth-helpers.c:1183 ../properties/auth-helpers.c:1249 +msgid "Client" +msgstr "Πελάτης" + +#: ../properties/auth-helpers.c:1498 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Δεν απαιτείται" + +#: ../properties/auth-helpers.c:1500 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1502 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1686 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1688 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1695 +msgid "(automatic)" +msgstr "(αυτόματο)" + +#: ../properties/auth-helpers.c:1867 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1869 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:189 +#, fuzzy, c-format +#| msgid "option %s expects between %u and %u arguments" +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "η επιλογή %s αναμένει μεταξύ %u και %u ορίσματα" +msgstr[1] "η επιλογή %s αναμένει μεταξύ %u και %u ορίσματα" + +#: ../properties/import-export.c:194 +#, c-format +msgid "option %s expects no arguments" +msgstr "η επιλογή %s δεν αναμένει ορίσματα" + +#: ../properties/import-export.c:196 +#, fuzzy, c-format +#| msgid "option %s expects exactly one argument" +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "η επιλογή %s αναμένει ακριβώς ένα όρισμα" +msgstr[1] "η επιλογή %s αναμένει ακριβώς ένα όρισμα" + +#: ../properties/import-export.c:225 +#, c-format +msgid "argument %s of \"%s\" can not be empty" +msgstr "το όρισμα %s του \"%s\" δεν μπορεί να είναι κενό" + +#: ../properties/import-export.c:227 +#, c-format +msgid "argument of \"%s\" can not be empty" +msgstr "το όρισμα του \"%s\" δεν μπορεί να είναι κενό" + +#: ../properties/import-export.c:243 +#, c-format +msgid "argument %s of \"%s\" must be UTF-8 encoded" +msgstr "το όρισμα %s του \"%s\" πρέπει να έχει κωδικοποίηση UTF-8" + +#: ../properties/import-export.c:245 +#, c-format +msgid "argument of \"%s\" must be UTF-8 encoded" +msgstr "το όρισμα του\"%s\" πρέπει να έχει κωδικοποίηση UTF-8" + +#: ../properties/import-export.c:269 +#, c-format +msgid "invalid %uth argument to '%s' where number expected" +msgstr "μη έγκυρο όρισμα %uth στο '%s' όπου αναμενόταν ένας αριθμός" + +#: ../properties/import-export.c:300 +#, c-format +msgid "invalid %uth argument to '%s' where IPv4 address expected" +msgstr "μη έγκυρο όρισμα %uth στο '%s' όπου αναμενόταν διεύθυνση IPv4" + +#: ../properties/import-export.c:328 +#, c-format +msgid "invalid %uth key-direction argument to '%s'" +msgstr "μη έγκυρο όρισμα key-direction %uth στο '%s'" + +#: ../properties/import-export.c:342 +#, c-format +msgid "invalid %uth argument to '%s'" +msgstr "μη έγκυρο όρισμα %uth στο '%s'" + +#: ../properties/import-export.c:458 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "" + +#: ../properties/import-export.c:459 +msgid "double quote" +msgstr "διπλό εισαγωγικό" + +#: ../properties/import-export.c:459 +msgid "single quote" +msgstr "απλό εισαγωγικό" + +#: ../properties/import-export.c:468 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "" + +#: ../properties/import-export.c:589 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "αδυναμία ανάγνωσης του αρχείου πιστοποίησης του διαμεσολαβητή HTTP" + +#: ../properties/import-export.c:607 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"αδυναμία ανάγνωσης χρήστη/κωδικού πρόσβασης από το αρχείο πιστοποίηση του " +"διαμεσολαβητή HTTP" + +#: ../properties/import-export.c:615 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"ο χρήστης/κωδικός πρόσβασης του αρχείου πιστοποίησης του διαμεσολαβητή HTTP " +"πρέπει να έχουν κωδικοποίηση UTF-8" + +#: ../properties/import-export.c:677 +#, c-format +msgid "'%s' is not a directory" +msgstr "Το '%s' δεν είναι κατάλογος" + +#: ../properties/import-export.c:685 +#, c-format +msgid "cannot create '%s' directory" +msgstr "αδυναμία δημιουργίας του καταλόγου '%s'" + +#: ../properties/import-export.c:705 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "αδυναμία εγγραφής του <%s> blob από τη γραμμή %ld στο αρχείο (%s)" + +#: ../properties/import-export.c:722 +#, c-format +msgid "cannot write <%s> blob from line %ld to file '%s'" +msgstr "αδυναμία εγγραφής του <%s> blob από τη γραμμή %ld στο αρχείο '%s'" + +#: ../properties/import-export.c:885 ../properties/import-export.c:1191 +#, c-format +msgid "invalid option" +msgstr "άκυρη επιλογή" + +#: ../properties/import-export.c:917 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "μη υποστηριζόμενο όρισμα του comp-lzo" + +#: ../properties/import-export.c:1005 +#, c-format +msgid "remote cannot contain space" +msgstr "το απομακρυσμένο δε μπορεί να περιέχει κενό χαρακτήρα" + +#: ../properties/import-export.c:1009 +#, c-format +msgid "remote cannot contain comma" +msgstr "το απομακρυσμένο δε μπορεί να περιέχει κόμμα" + +#: ../properties/import-export.c:1020 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "" + +#: ../properties/import-export.c:1304 +#, c-format +msgid "unsupported blob/xml element" +msgstr "μη υποστηριζόμενο στοιχείο blob/xml" + +#: ../properties/import-export.c:1333 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "" + +#: ../properties/import-export.c:1383 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "σφάλμα διαμόρφωσης: %s (γραμμή %ld)" + +#: ../properties/import-export.c:1384 +msgid "unknown or unsupported option" +msgstr "άγνωστη ή μη υποστηριζόμενη επιλογή" + +#: ../properties/import-export.c:1394 +msgid "The file to import wasn't a valid OpenVPN client configuration" +msgstr "" + +#: ../properties/import-export.c:1402 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)" +msgstr "" + +#: ../properties/import-export.c:1635 +msgid "missing path argument" +msgstr "" + +#: ../properties/import-export.c:1645 +msgid "connection is not a valid OpenVPN connection" +msgstr "" + +#: ../properties/import-export.c:1654 +msgid "connection was incomplete (missing gateway)" +msgstr "η σύνδεση ήταν ελλιπής (λείπει η πύλη δικτύου)" + +#: ../properties/import-export.c:1955 +#, c-format +msgid "failed to write file: %s" +msgstr "αδύνατη η εγγραφή του αρχείου: %s" + +#: ../properties/nm-openvpn.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Συμβατό με τον διακομιστή OpenVPN." + +#: ../properties/nm-openvpn.c:329 +msgid "Certificates (TLS)" +msgstr "Πιστοποιητικά (TLS)" + +#: ../properties/nm-openvpn.c:340 +msgid "Password" +msgstr "Κωδικός πρόσβασης" + +#: ../properties/nm-openvpn.c:353 +msgid "Password with Certificates (TLS)" +msgstr "Κωδικός πρόσβασης με πιστοποιητικά (TLS)" + +#: ../properties/nm-openvpn.c:365 +msgid "Static Key" +msgstr "Στατικό Κλειδί" + +#: ../properties/nm-openvpn.c:513 +msgid "could not create openvpn object" +msgstr "αδυναμία δημιουργίας αντικειμένου openvpn" + +#: ../properties/nm-openvpn.c:539 +msgid "could not load UI widget" +msgstr "αδυναμία φόρτωσης γραφικού στοιχείου του περιβάλλοντος" + +#: ../properties/nm-openvpn.c:630 +msgid "unknown OpenVPN file extension" +msgstr "άγνωστη επέκταση αρχείου του OpenVPN" + +#: ../shared/nm-shared-utils.c:174 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "" + +#: ../shared/nm-shared-utils.c:181 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "" + +#: ../shared/nm-shared-utils.c:188 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" + +#: ../shared/nm-shared-utils.c:196 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" + +#: ../shared/nm-shared-utils.c:205 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" + +#: ../shared/nm-shared-utils.c:216 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:359 +#, c-format +msgid "invalid address '%s'" +msgstr "άκυρη διεύθυνση '%s'" + +#: ../src/nm-openvpn-service.c:371 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "άκυρη ακέραια ιδιότητα '%s' ή εκτός ορίου [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:382 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "άκυρη ιδιότητα λογικής τιμής '%s' (ούτε ναι ούτε όχι)" + +#: ../src/nm-openvpn-service.c:389 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "ανεπίλυτη ιδιότητα '%s' τύπου %s" + +#: ../src/nm-openvpn-service.c:400 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "άκυρη ή ανυποστήρικτη ιδιότητα '%s'" + +#: ../src/nm-openvpn-service.c:416 +msgid "No VPN configuration options." +msgstr "Χωρίς επιλογές διαμόρφωσης VPN." + +#: ../src/nm-openvpn-service.c:585 +msgid "A username is required." +msgstr "Απαιτείται όνομα χρήστη." + +#: ../src/nm-openvpn-service.c:589 +msgid "A password is required." +msgstr "Απαιτείται κωδικός πρόσβασης." + +#: ../src/nm-openvpn-service.c:592 +msgid "A username and password are required." +msgstr "Απαιτείται όνομα χρήστη και κωδικός πρόσβασης." + +#: ../src/nm-openvpn-service.c:612 +msgid "A private key password is required." +msgstr "Απαιτείται κωδικός πρόσβασης ιδιωτικού κλειδιού." + +#: ../src/nm-openvpn-service.c:625 +msgid "An HTTP Proxy username is required." +msgstr "Απαιτείται όνομα χρήστη διαμεσολαβητή HTTP." + +#: ../src/nm-openvpn-service.c:629 +msgid "An HTTP Proxy password is required." +msgstr "Απαιτείται κωδικός πρόσβασης διαμεσολαβητή HTTP." + +#: ../src/nm-openvpn-service.c:632 +msgid "An HTTP Proxy username and password are required." +msgstr "Απαιτείται όνομα χρήστη και κωδικός πρόσβασης διαμεσολαβητή HTTP." + +#: ../src/nm-openvpn-service.c:1114 +msgid "Could not find the openvpn binary." +msgstr "Αδυναμία εύρεσης του εκτελέσιμου openvpn." + +#: ../src/nm-openvpn-service.c:1124 +msgid "Invalid HMAC auth." +msgstr "Άκυρη πιστοποίηση HMAC." + +#: ../src/nm-openvpn-service.c:1134 ../src/nm-openvpn-service.c:1834 +msgid "Invalid connection type." +msgstr "Άκυρος τύπος σύνδεσης." + +#: ../src/nm-openvpn-service.c:1169 ../src/nm-openvpn-service.c:1179 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Άκυρος αριθμός θύρας '%s'." + +#: ../src/nm-openvpn-service.c:1196 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Άκυρος τύπος πρωτοκόλλου '%s'." + +#: ../src/nm-openvpn-service.c:1242 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Άκυρος τύπος διαμεσολαβητή '%s'." + +#: ../src/nm-openvpn-service.c:1265 +#, c-format +msgid "Invalid ping duration '%s'." +msgstr "Μη έγκυρη διάρκεια του ping '%s'." + +#: ../src/nm-openvpn-service.c:1279 +#, c-format +msgid "Invalid ping-exit duration '%s'." +msgstr "Μη έγκυρη διάρκεια του ping-exit '%s'." + +#: ../src/nm-openvpn-service.c:1293 +#, c-format +msgid "Invalid ping-restart duration '%s'." +msgstr "Μη έγκυρη διάρκεια του ping-restart '%s'." + +#: ../src/nm-openvpn-service.c:1345 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Άκυρο μέγεθος κλειδιού '%s'." + +#: ../src/nm-openvpn-service.c:1402 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Άκυρα δευτερόλεπτα επαναδιαπραγμάτευσης '%s'." + +#: ../src/nm-openvpn-service.c:1434 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Άκυρο μέγεθος MTU TUN '%s'." + +#: ../src/nm-openvpn-service.c:1449 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Άκυρο μέγεθος αποκόμματος '%s'." + +#: ../src/nm-openvpn-service.c:1525 +msgid "Missing required local IP address for static key mode." +msgstr "" +"Λείπει η απαιτούμενη τοπική διεύθυνση IP για λειτουργία στατικού κλειδιού." + +#: ../src/nm-openvpn-service.c:1537 +msgid "Missing required remote IP address for static key mode." +msgstr "" +"Λείπει η απαιτούμενη απομακρυσμένη διεύθυνση IP για λειτουργία στατικού " +"κλειδιού." + +#: ../src/nm-openvpn-service.c:1562 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Άγνωστος τύπος σύνδεσης '%s'." + +#: ../src/nm-openvpn-service.c:1587 +#, c-format +msgid "User '%s' not found, check NM_OPENVPN_USER." +msgstr "Δεν βρέθηκε ο χρήστης '%s', ελέγξτε το NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1601 +#, c-format +msgid "Group '%s' not found, check NM_OPENVPN_GROUP." +msgstr "Δεν βρέθηκε η ομάδα '%s', ελέγξτε το NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:1748 ../src/nm-openvpn-service.c:1825 +#: ../src/nm-openvpn-service.c:1859 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Αδύνατη η επεξεργασία του αιτήματος, επειδή οι ρυθμίσεις της σύνδεσης VPN " +"ήταν άκυρες." + +#: ../src/nm-openvpn-service.c:1757 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Αδύνατη η επεξεργασία του αιτήματος, επειδή ο τύπος σύνδεσης του openvpn " +"ήταν άκυρος." + +#: ../src/nm-openvpn-service.c:1872 +msgid "Unhandled pending authentication." +msgstr "Ανεπίλυτη αναμονή πιστοποίησης." + +#: ../src/nm-openvpn-service.c:1990 +msgid "Don't quit when VPN connection terminates" +msgstr "Να μην γίνει έξοδος όταν η σύνδεση VPN τερματίζει" + +#: ../src/nm-openvpn-service.c:1991 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Ενεργοποίηση αναλυτικής καταγραφής αποσφαλμάτωσης (μπορεί να εκθέτει τους " +"κωδικούς πρόσβασης)" + +#: ../src/nm-openvpn-service.c:1992 +msgid "D-Bus name to use for this instance" +msgstr "Ονομασία D-Bus που θα χρησιμοποιηθεί για αυτή τη συνεδρία" + +#: ../src/nm-openvpn-service.c:2018 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"Το nm-openvpn-service παρέχει ολοκληρωμένες δυνατότητες OpenVPN στο " +"NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Γενικά" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "Πύ_λη δικτύου:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Απομακρυσμένες πύλες δικτύου, με προαιρετική θύρα και πρωτόκολλο (π.χ ovpn." +"corp.com:1234:tcp). Μπορείτε να ορίσετε πολλαπλά στοιχεία για πλεονασμό " +"(χρησιμοποιήστε κόμματα για διάκριση των καταχωρίσεων).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Πιστοποίηση" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Ε_μφάνιση κωδικών πρόσβασης" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Κωδικός πρόσβασης για το ιδιωτικό κλειδί" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Κωδικός πρόσβασης ιδιωτικού κλειδιού:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Το ιδιωτικό κλειδί του τοπικού ομότιμου σε μορφή .pem.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Ιδιωτικό κλειδί:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Αρχείο πιστοποιητικού αρχής (CA) σε μορφή .pem.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Πι_στοποιητικό CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Πιστοποιητικό χρήστη:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Υπογεραμμένο πιστοποιητικό του τοπικού ομότιμου σε μορφή .pem (υπογραμμένο " +"από CA πιστοποιητικό).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Ο κωδικός πρόσβασης πέρασε στο OpenVPN όταν του ζητήθηκε.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Όνομα χρήστη:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Το όνομα χρήστη πέρασε στο OpenVPN όταν του ζητήθηκε.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Διεύθυνση IP του τοπικού τελικού σημείου VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Απομακρυσμένη διεύθυνση IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Τοπική διεύθυνση IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Διεύθυνση IP του απομακρυσμένου τελικού σημείου VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Κατεύθυνση κλειδιού:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Στατικό Κλειδί:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Προκοινόχρηστο αρχείο για λειτουργία κρυπτογράφησης στατικού κλειδιού (όχι-" +"TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Κατεύθυνση για τη λειτουργία κρυπτογράφησης στατικού κλειδιού (μη-TLS)\n" +"Αν χρησιμοποιηθεί η κατεύθυνση του κλειδιού, θα πρέπει να είναι αντίθετη από " +"την κατεύθυνση του άλλου υπολογιστή. Για παράδειγμα, αν ο άλλος υπολογιστής " +"χρησιμοποιεί '1', αυτή η σύνδεση θα πρέπει να χρησιμοποιεί '0'. Αν δεν είστε " +"βέβαιοι για το ποια τιμή πρέπει να χρησιμοποιήσετε, επικοινωνήστε με το " +"διαχειριστή του συστήματος.\n" +"ρύθμιση: static [κατεύθυνση]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Τύπος:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Επιλέξτε λειτουργία πιστοποίησης." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Για προ_χωρημένους..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Προχωρημένες επιλογές OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Χρήση προσαρμοσμένης _θύρας πύλης δικτύου:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Αριθμός θύρας TCP/UDP για το ομότιμο. (Η προεπιλεγμένη τιμή όταν δεν υπάρχει " +"θύρα για τη πύλη δικτύου)\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Χρήση προσαρμοσμένου χρόνου επανα_διαπραγμάτευσης:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Επαναδιαπραγμάτευση κλειδιού του καναλιού δεδομένων μετά τον καθορισμένο " +"αριθμό δευτερολέπτων.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Χρήση συμπίεσης δεδομένων L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Χρήση γρήγορης συμπίεσης LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Χρήση σύνδεσης _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Χρήση TCP για επικοινωνία με απομακρυσμένο κεντρικό υπολογιστή.\n" +"(Αυτή είναι η προεπιλεγμένη ρύθμιση και χρησιμοποιείται μόνο όταν δεν " +"υπάρχει ορισμένο πρωτόκολλο για τη πύλη δικτύου.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Set virtual _device type:" +msgstr "Ορισμός τύπου εικονικής _συσκευής:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Ρητός ορισμός τύπου εικονικής συσκευής και ονόματος (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Ρητός ορισμός τύπου εικονικής συσκευής (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid " and _name:" +msgstr "και ο_νόματος:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Χρήση προσαρμοσμένου ονόματος για εικονική συσκευή TUN/TAP (αντί των " +"προεπιλεγμένων \"tun\" ή \"tap\").\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Χρήση προσαρμοσμένης _μονάδας μέγιστης μετάδοσης διοχέτευσης (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Λήψη της MTU συσκευής TUN στην καθορισμένη τιμή και παραγωγή του συνδέσμου " +"MTU από αυτή.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Use custom UDP _fragment size:" +msgstr "Χρήση προσαρμοσμένου μεγέθους _αποκόμματος UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Ενεργοποίηση εσωτερικού κατακερματισμού αυτοδύναμου πακέτου με αυτό το " +"μέγιστο μέγεθος.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Περιορισμός διοχέτευσης μέγιστου μεγέθους _αποκόμματος TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Περιορισμός διoχέτευσης MSS TCP.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Rando_mize remote hosts" +msgstr "_Τυχαία σειρά απομακρυσμένων κεντρικών υπολογιστών" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Τυχαία σειρά της λίστας πυλών δικτύου (απομακρυσμένης) ως ενός είδους " +"βασικού μέτρου εξισορρόπησης φορτίου.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "IPv6 tun link" +msgstr "Σύνδεσμος IPv6 tun" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address " +"and pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify pin_g interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "Specify _exit or restart ping:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "General" +msgstr "Γενικά" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Κρυπτογράφηση πακέτων με αλγόριθμο κρυπτογράφησης. Η προεπιλογή είναι BF-CBC " +"(Blowfish σε λειτουργία Cipher Block Chaining).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "Use custom _size of cipher key:" +msgstr "Χρήση προσαρμοσμένου _μεγέθους κλειδιού κρυπτογράφισης:" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Ορισμός μεγέθους κλειδιού κρυπτογράφισης σε προσαρμοσμένη τιμή. Εάν δεν " +"καθοριστεί, χρησιμοποιείται το προεπιλεγμένο μέγεθος κλειδιού " +"κρυπτογράφισης.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Επαλήθευση πακέτων με HMAC χρησιμοποιώντας αλγόριθμο αφομοίωσης μηνύματος. Η " +"προεπιλογή είναι SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Ci_pher:" +msgstr "Αλγόριθμος κρυπτογράφησης:" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_HMAC Authentication:" +msgstr "Πιστοποίηση HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "Security" +msgstr "Ασφάλεια" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "_Subject Match:" +msgstr "Συμφωνία _θέματος:" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Σύνδεση σε διακομιστές μόνο όταν το πιστοποιητικό τους ταιριάζει με το " +"δοθέν θέμα.\n" +"Παράδειγμα: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Αποδοχή συνδέσεων μόνο από έναν κεντρικό υπολογιστή με όνομα X509 ή κοινό " +"όνομα ισοδύναμο με το καθορισμένο.\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Επιβεβαίωση υπογραφής χρήσης πιστοποιητικού ομότιμου (διακομιστή)" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Απαιτείται αυτό το πιστοποιητικό ομότιμου να έχει υπογραφεί με χρήση ρητού " +"κλειδιού και επεκταμένη χρήση κλειδιού με βάση τους κανόνες TLS RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "_Remote peer certificate TLS type:" +msgstr "Α_πομακρυσμένο πιστοποιητικό ομότιμου, τύπου TLS:" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Απαιτείται αυτό το πιστοποιητικό ομότιμου να έχει υπογραφεί με χρήση ρητού " +"κλειδιού και επεκταμένη χρήση κλειδιού με βάση τους κανόνες TLS RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:111 +#, fuzzy +#| msgid "_Verify peer (server) certificate usage signature" +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Επιβεβαίωση υπογραφής χρήσης πιστοποιητικού ομότιμου (διακομιστή)" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +#| msgid "" +#| "Require that peer certificate was signed with an explicit key usage and " +#| "extended key usage based on RFC3280 TLS rules." +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Απαιτείται αυτό το πιστοποιητικό ομότιμου να έχει υπογραφεί με χρήση ρητού " +"κλειδιού και επεκταμένη χρήση κλειδιού με βάση τους κανόνες TLS RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:113 +#, fuzzy +#| msgid "_Remote peer certificate TLS type:" +msgid "_Remote peer certificate nsCert designation:" +msgstr "Α_πομακρυσμένο πιστοποιητικό ομότιμου, τύπου TLS:" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +#, fuzzy +#| msgid "" +#| "Require that peer certificate was signed with an explicit key usage and " +#| "extended key usage based on RFC3280 TLS rules.\n" +#| "config: remote-cert-tls client|server" +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Απαιτείται αυτό το πιστοποιητικό ομότιμου να έχει υπογραφεί με χρήση ρητού " +"κλειδιού και επεκταμένη χρήση κλειδιού με βάση τους κανόνες TLS RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "Use additional _TLS authentication" +msgstr "Χρήση πρόσθετης πιστοποίησης _TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "Add an additional layer of HMAC authentication." +msgstr "Προσθήκη πρόσθετης στρώσης πιστοποίησης HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Key _Direction:" +msgstr "_Κατεύθυνση κλειδιού:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Προσθήκη πρόσθετης στρώσης πιστοποίησης HMAC στην κορυφή του καναλιού " +"ελέγχου TLS για προστασία κατά επιθέσεων DoS.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Παράμετρος κατεύθυνση για τη λειτουργία στατικού κλειδιού.\n" +"Αν χρησιμοποιηθεί η κατεύθυνση του κλειδιού, θα πρέπει να είναι αντίθετη από " +"την κατεύθυνση του άλλου υπολογιστή VPN. Για παράδειγμα, αν ο άλλος " +"υπολογιστής χρησιμοποιεί '1', αυτή η σύνδεση θα πρέπει να χρησιμοποιεί '0'. " +"Αν δεν είστε βέβαιοι για το ποια τιμή πρέπει να χρησιμοποιήσετε, " +"επικοινωνήστε με το διαχειριστή του συστήματος.\n" +"ρύθμιση: tls-auth [κατεύθυνση]" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "Key _File:" +msgstr "_Αρχείο κλειδιού:" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "TLS Authentication" +msgstr "Πιστοποίηση TLS:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Τύπος διαμεσολαβητή: HTTP ή Socks.\n" +"config: http-proxy ή socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "Proxy _Type:" +msgstr "_Τύπος διαμεσολαβητή:" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Επιλέξτε αν ο οργανισμός σας απαιτεί τη χρήση διακομιστή διαμεσολάβησης " +"για πρόσβαση στο διαδίκτυο." + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Server _Address:" +msgstr "_Διεύθυνση διακομιστή:" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Σύνδεση με απομακρυσμένο κεντρικό υπολογιστή μέσα από έναν διαμεσολαβητή με " +"αυτή τη διεύθυνση.\n" +"config: http-proxy ή socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "_Port:" +msgstr "_Θύρα:" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Σύνδεση με απομακρυσμένο κεντρικό υπολογιστή μέσα από έναν διαμεσολαβητή με " +"αυτή τη θύρα.\n" +"config: http-proxy ή socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "_Retry indefinitely when errors occur" +msgstr "Επανάλη_ψη επ' άπειρον όταν προκύπτουν σφάλματα" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Επανάληψη επ' άπειρο σε σφάλματα διαμεσολαβητή. Προσομοιάζει μια επαναφορά " +"SIGUSR1.\n" +"config: http-proxy-retry ή socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "Proxy _Username:" +msgstr "Ό_νομα χρήστη διαμεσολαβητή:" + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "Proxy Passwor_d:" +msgstr "Κ_ωδικός πρόσβασης διαμεσολαβητή:" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Το όνομα χρήστη διαμεσολαβητή HTTP/Socks πέρασε στο OpenVPN όταν του " +"ζητήθηκε." + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"Ο κωδικός πρόσβασης διαμεσολαβητή HTTP/Socks πέρασε στο OpenVPN όταν του " +"ζητήθηκε." + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "_Show password" +msgstr "Ε_μφάνιση κωδικού πρόσβασης" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "Proxies" +msgstr "Διαμεσολαβητές" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "η επιλογή %s αναμένει ακριβώς %u ορίσματα" + +#~ msgid "could not open file for writing" +#~ msgstr "αδυναμία ανοίγματος αρχείου για εγγραφή" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Διαχειριστής συνδέσεων VPN (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Προσθήκη, αφαίρεση και επεξεργασία συνδέσεων VPN " + +#~ msgid "Saved" +#~ msgstr "Αποθηκευμένα" + +#~ msgid "Always Ask" +#~ msgstr "Να γίνεται πάντα ερώτηση" + +#~ msgid "Not Required" +#~ msgstr "Δεν απαιτείται" + +#~ msgid "" +#~ "Direction parameter for static key mode.\n" +#~ "config: tls-auth [direction]" +#~ msgstr "" +#~ "Παράμετρος κατεύθυνσης λειτουργία στατικού κλειδιού .\n" +#~ "config: tls-auth [direction]" + +#~ msgid "" +#~ "Direction for Static Key encryption mode (non-TLS).\n" +#~ "config: static [direction]" +#~ msgstr "" +#~ "Κατεύθυνση για λειτουργία κρυπτογράφησης στατικού κλειδιού (όχι-TLS).\n" +#~ "config: static [direction]" + +#~ msgid "_Password:" +#~ msgstr "_Συνθηματικό:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Δευτερεύον συνθηματικό:" + +#~ msgid "_Username:" +#~ msgstr "Ό_νομα χρήστη:" + +#~ msgid "_Domain:" +#~ msgstr "_Τομέας:" + +#~ msgid "Connect _anonymously" +#~ msgstr "_Ανώνυμη σύνδεση" + +#~ msgid "Connect as _user:" +#~ msgstr "Σύνδεση ως _χρήστης:" + +#~ msgid "_Remember password for this session" +#~ msgstr "Απομνη_μόνευση συνθηματικού για αυτή τη συνεδρία" + +#~ msgid "_Save password in keyring" +#~ msgstr "Απο_θήκευση συνθηματικού στην κλειδοθήκη" + +#~ msgid "Use a TA_P device" +#~ msgstr "Χρήση συσκευής TA_P" diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..d6af022 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,1156 @@ +# English (British) translation for NetworkManager-openvpn +# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the NetworkManager-openvpn package. +# David Lodge , 2006 +# Bruce Cowan , 2011. +# Chris Leonard , 2012. +msgid "" +msgstr "" +"Project-Id-Version: gnome-torrent\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2012-09-23 01:34-0400\n" +"Last-Translator: Chris Leonard \n" +"Language-Team: Sugar Labs\n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" +"X-Project-Style: gnome\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Authenticate VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Password:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Certificate password:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Authenticate VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Certificate pass_word:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "You need to authenticate to access the Virtual Private Network '%s'." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN Connection Manager (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Add, Remove, and Edit VPN Connections" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Choose your personal certificate…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Choose your private key…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Saved" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Always Ask" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Not required" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Choose a Certificate Authority certificate…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Choose an OpenVPN static key…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "None" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM certificates (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN Static Keys (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Default" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Not required" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Compatible with the OpenVPN server." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certificates (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Password" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Password with Certificates (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Static Key" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Could not find the openvpn binary." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "No VPN configuration options." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +#, fuzzy +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Remote host name or IP address. You can specify multiple items for " +"redundancy (use commas to separate the entries).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Authentication" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "_Show passwords" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Password for private key" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Private Key Password:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Local peer's private key in .pem format.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Private Key:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA Certificate:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "User Certificate:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "User name:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Remote IP Address:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Local IP Address:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Key Direction:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Static Key:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Type:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Select an authentication mode." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Ad_vanced..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN Advanced Options" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Use custom gateway p_ort:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"TCP/UDP port number for local peer.\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Use custom _renegotiation interval:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Use L_ZO data compression" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Use fast LZO compression.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Use a _TCP connection" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +#, fuzzy +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Use TAP virtual network device instead of TUN.\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Use custom tunnel Maximum Transmission _Unit (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Use custom UDP _fragment size:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Restrict tunnel TCP Maximum _Segment Size (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Rando_mise remote hosts" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Randomise the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Ci_pher:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "_HMAC Authentication:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Security" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "_Subject Match:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Use additional _TLS authentication" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Add an additional layer of HMAC authentication." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Key _Direction:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Key _File:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS Authentication" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Proxy _Type:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Select this option if your organisation requires the use of a proxy " +"server to access the Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Server _Address:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Retry indefinitely when errors occur" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Proxy _Username:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Proxy Passwor_d:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks proxy username passed to OpenVPN when prompted for it." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks proxy password passed to OpenVPN when prompted for it." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "_Show password" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Proxies" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "invalid address '%s'" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "invalid integer property '%s' or out of range [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "invalid boolean property '%s' (not yes or no)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "unhandled property '%s' type %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "property '%s' invalid or not supported" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "No VPN configuration options." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Private Key Password:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Could not find the openvpn binary." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Invalid HMAC auth." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Invalid connection type." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Invalid port number '%s'." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Invalid proxy type '%s'." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Invalid proxy type '%s'." + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "Invalid fragment size '%s'." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Invalid reneg seconds '%s'." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Invalid TUN MTU size '%s'." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Invalid fragment size '%s'." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Missing required local IP address for static key mode." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Missing required remote IP address for static key mode." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Unknown connection type '%s'." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Could not process the request because the VPN connection settings were " +"invalid." + +#: ../src/nm-openvpn-service.c:1391 +#, fuzzy +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Could not process the request because the VPN connection settings were " +"invalid." + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Select an authentication mode." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Don't quit when VPN connection terminates" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Enable verbose debug logging (may expose passwords)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." + +#~ msgid "_Password:" +#~ msgstr "_Password:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Secondary Password:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "Sh_ow passwords" + +#~ msgid "Use a TA_P device" +#~ msgstr "Use a TA_P device" + +#~ msgid "No VPN secrets!" +#~ msgstr "No VPN secrets!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "Could not process the request because no username was provided." + +#~ msgid "_Domain:" +#~ msgstr "_Domain:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Connect _anonymously" + +#~ msgid "Connect as _user:" +#~ msgstr "Connect as _user:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Remember password for this session" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Save password in keyring" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "The following OpenVPN connection will be created:" + +#~ msgid "Name: %s" +#~ msgstr "Name: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Connection Type: X.509 Certificates" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Cert: %s" + +#~ msgid "Key: %s" +#~ msgstr "Key: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Connection Type: Shared Key" + +#~ msgid "Shared Key: %s" +#~ msgstr "Shared Key: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "Remote IP: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Connection Type: Password" + +#~ msgid "Username: %s" +#~ msgstr "Username: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Connection Type: X.509 with Password Authentication" + +#~ msgid "Remote: %s" +#~ msgstr "Remote: %s" + +#~ msgid "Device: %s" +#~ msgstr "Device: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protocol: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Routes: %s" + +#~ msgid "Yes" +#~ msgstr "Yes" + +#~ msgid "No" +#~ msgstr "No" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS auth: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "The connection details can be changed using the \"Edit\" button." + +#~ msgid "Cannot import settings" +#~ msgstr "Cannot import settings" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "The VPN settings file '%s' does not contain valid data." + +#~ msgid "Select file to import" +#~ msgstr "Select file to import" + +#~ msgid "Select CA to use" +#~ msgstr "Select CA to use" + +#~ msgid "Select certificate to use" +#~ msgstr "Select certificate to use" + +#~ msgid "Select key to use" +#~ msgstr "Select key to use" + +#~ msgid "Select shared key to use" +#~ msgstr "Select shared key to use" + +#~ msgid "Select TA to use" +#~ msgstr "Select TA to use" + +#~ msgid "Save as..." +#~ msgstr "Save as..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "A file named \"%s\" already exists." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Do you want to replace it with the one you are saving?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Failed to export configuration" + +#~ msgid "Failed to save file %s" +#~ msgstr "Failed to save file %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "example: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "C_A file:" + +#~ msgid "Connection na_me:" +#~ msgstr "Connection na_me:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Import _Saved Configuration..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" + +#~ msgid "Network" +#~ msgstr "Network" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "Only use _VPN connection for these addresses:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." + +#~ msgid "Shared _key:" +#~ msgstr "Shared _key:" + +#~ msgid "TLS-Auth" +#~ msgstr "TLS-Auth" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Use _TLS auth:" + +#~ msgid "Use cip_her:" +#~ msgstr "Use cip_her:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "_Gateway address:" + +#~ msgid "_Key:" +#~ msgstr "_Key:" + +#~ msgid "_Local IP:" +#~ msgstr "_Local IP:" + +#~ msgid "_none" +#~ msgstr "_none" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "The VPN login failed because the VPN program could not be started." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." + +#~ msgid "VPN connection failed" +#~ msgstr "VPN connection failed" + +#~ msgid "Connection Name" +#~ msgstr "Connection Name" + +#~ msgid "Optional Information" +#~ msgstr "Optional Information" + +#~ msgid "CA file:" +#~ msgstr "CA file:" + +#~ msgid "Username:" +#~ msgstr "Username:" + +#~ msgid "X.509" +#~ msgstr "X.509" diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..e3ee1ec --- /dev/null +++ b/po/eo.po @@ -0,0 +1,813 @@ +# Esperanto translation for network-manager-openvpn. +# Copyright (C) 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the network-manager-openvpn package. +# Kristjan SCHMIDT , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-11-23 20:10+0100\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Pasvorto:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Elekti vian personan atestilon..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Elekti vian privatan ŝlosilon..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Konservite" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Demandi ĉiam" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Neniu" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Defaŭlte" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Pasvorto" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Ĝenerale" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Montri pasvortojn" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Uzantonomo:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Al_tnivele..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Ĝenerale" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Sekureco" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Servilo_adreso:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Pordo:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Montri pasvorton" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "nevalida adreso '%s'" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "nevalida adreso '%s'" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "nevalida adreso '%s'" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Pasvorto:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Duaranga pasvorto:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "M_ontri pasvortojn" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..e9f50ec --- /dev/null +++ b/po/es.po @@ -0,0 +1,1583 @@ +# translation of NetworkManager-openvpn.HEAD.po to Español +# Spanish message file for YaST2 (@memory@). +# Copyright (C) 2005 SUSE Linux Products GmbH. +# Copyright (C) 2002, 2003 SuSE Linux AG. +# Copyright (C) 1999, 2000, 2001 SuSE GmbH. +# +# Ibán josé García Castillo , 2000. +# Javier Moreno , 2000. +# Jordi Jaen Pallares , 1999, 2000, 2001. +# Pablo Iranzo Gómez , 2000. +# Jorge González , 2007, 2008, 2009, 2010. +# Daniel Mustieles , 2011, 2012, 2013, 2014, 2015, 2016, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn.HEAD\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-10-15 20:19+0000\n" +"PO-Revision-Date: 2017-10-20 09:45+0200\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: es \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Cliente de OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Cliente para redes privadas virtuales OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Soporte para configurar conexiones a redes privadas virtuales OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" +"OpenVPN es una solución VPN flexible y popular, y además es software libre." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Los desarrolladores de NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autenticar VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Password:" +msgstr "Contraseña:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Contraseña del certificado:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Contraseña del proxy HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Autenticación VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "_Contraseña del certificado:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Contraseña del proxy _HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Debe autenticarse para acceder a la red privada virtual «%s»." + +#: ../properties/auth-helpers.c:280 +msgid "Choose an OpenVPN static key…" +msgstr "Elija una clave estática OpenVPN…" + +#: ../properties/auth-helpers.c:304 ../properties/auth-helpers.c:967 +#: ../properties/auth-helpers.c:1732 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Ninguno" + +#: ../properties/auth-helpers.c:718 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Claves estáticas OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:865 ../properties/auth-helpers.c:959 +msgid "Default" +msgstr "Predeterminado" + +#: ../properties/auth-helpers.c:969 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:971 +msgid "MD-5" +msgstr "MD5" + +#: ../properties/auth-helpers.c:973 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:975 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:977 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:979 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:981 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:983 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1026 +msgid "Don’t verify certificate identification" +msgstr "No verificar la identificación del certificado" + +#: ../properties/auth-helpers.c:1032 +msgid "Verify whole subject exactly" +msgstr "Verificar el asunto completo exactamente" + +#: ../properties/auth-helpers.c:1038 +msgid "Verify name exactly" +msgstr "Verificar el nombre exactamente" + +#: ../properties/auth-helpers.c:1044 +msgid "Verify name by prefix" +msgstr "Verificar el nombre por prefijo" + +#: ../properties/auth-helpers.c:1050 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Verificar el asunto parcialmente (modo heredado, no recomendado)" + +#: ../properties/auth-helpers.c:1164 ../properties/auth-helpers.c:1235 +msgid "Server" +msgstr "Servidor" + +#: ../properties/auth-helpers.c:1169 ../properties/auth-helpers.c:1240 +msgid "Client" +msgstr "Cliente" + +#: ../properties/auth-helpers.c:1533 ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Not required" +msgstr "No necesario" + +#: ../properties/auth-helpers.c:1535 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1537 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automático)" + +#: ../properties/auth-helpers.c:1792 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1794 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "la opción %s espera entre %u y %u argumento" +msgstr[1] "la opción %s espera entre %u y %u argumentos" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "opción %s no espera argumentos" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "la opción %s espera exactamente un argumento" +msgstr[1] "la opción %s espera exactamente %u argumentos" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "el argumento %s de «%s» no puede estar vacío" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "el argumento de «%s» no puede estar vacío" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "el argumento %s de «%s» debe estar en UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "el argumento de «%s» debe estar en UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "argumento %uth no válido en «%s» donde se espera un número" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "argumento %uth %s no válido para «%s»" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"argumento %uth no válido para «%s» que parece ser un FQDN, pero sólo se " +"soportan direcciones IPv4" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "argumento %uth no válido en «%s» donde se espera una dirección IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "argumento %uth dirección-clave no válida en <<%s>>" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "Argumento %uth no válido en «%s»" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "sin terminar %s en la posición %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "comillas dobles" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "comilla simple" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "barra invertida de escape en la posición %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "incapaz de leer el archivo de autenticación de proxy HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"no se puede leer usuario/contraseña del archivo de autenticación proxy HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"el usuario/contraseña del archivo de autenticación del proxy HTTP debe estar " +"codificado en UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "«%s» no es una carpeta" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "no se puede crear la carpeta «%s»" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "no se puede escribir <%s> de la línea %ld en el archivo (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "no se puede escribir <%s> de la línea %ld en el archivo «%s»" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "argumento mtu-disc no soportado" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "opción no válida" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "argumento comp-lzo no soportado" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "remoto no puede contener espacios" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "remoto no puede contener coma" + +#: ../properties/import-export.c:1098 +#, c-format +#| msgid "remote expects protocol either udp or remote" +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "remoto esperaba tipo protocolo «udp» o «tcp»" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "tipo de verify-x509-name no válido" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "elemento blob/xml no soportado" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "elemento blob sin terminar <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "error de configuración: %s (línea %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "opción desconocida o no soportada" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "" +"El archivo que importar no era una configuración del cliente OpenVPN válida." + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"El archivo que importar no era una configuración OpenVPN válida (no remoto)" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "falta argumento de la ruta" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "no es una conexión OpenVPN válida" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "la conexión estaba incompleta (falta la puerta de enlace)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "falló al escribir en el archivo: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Compatible con el servidor OpenVPN." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "extensión de archivo de OpenVPN desconocida" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Certificados (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Contraseña" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Contraseña con certificados (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Clave estática" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "No se pudo crear el objeto openvpn" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "no se pudo cargar el widget de la IU" + +#: ../shared/nm-utils/nm-shared-utils.c:619 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "la clase del objeto «%s» no tiene ninguna propiedad llamada «%s»" + +#: ../shared/nm-utils/nm-shared-utils.c:626 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "la propiedad «%s» del objeto de la clase «%s» no se puede escribir" + +#: ../shared/nm-utils/nm-shared-utils.c:633 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"no se puede establecer la propiedad «%s» del constructor para el objeto «%s» " +"después de la construcción" + +#: ../shared/nm-utils/nm-shared-utils.c:641 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"«%s::%s» no es un nombre de propiedad válido; «%s» no es un subtipo de " +"GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:650 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"no se puede establecer la propiedad «%s» de tipo «%s» con un valor de tipo " +"«%s»" + +#: ../shared/nm-utils/nm-shared-utils.c:661 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"el valor «%s» de tipo «%s» no es válido o está fuera de rango para la " +"propiedad «%s» de tipo «%s»" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "falta el archivo del complemento «%s»" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "no se puede cargar el complemento del editor: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "no se puede cargar la fábrica %s desde el complemento: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "error desconocido al crear la instancia del editor" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "delimitador de caracteres «%c» no válido" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "carácter no UTF-8 no válido" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "servidor vacío" + +#: ../shared/utils.c:204 +#, c-format +#| msgid "invalid option" +msgid "invalid port" +msgstr "puerto no válido" + +#: ../shared/utils.c:215 +#, c-format +#| msgid "invalid option" +msgid "invalid protocol" +msgstr "protocolo no válido" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "dirección «%s» no válida" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "propiedad entera «%s» no válida o fuera de rango [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "propiedad booleana «%s» no válida (no es «sí» o «no»)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "propiedad «%s» de tipo %s no controlada" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "propiedad «%s» no válida o no soportada" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "No hay opciones de configuración de VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Se requiere un nombre de usuario." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Se requiere una contraseña." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Se requiere un nombre de usuario y una contraseña." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Se requiere una contraseña de la clave privada." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Se requiere un nombre de usuario para el proxy HTTP." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Se requiere una contraseña para el proxy HTTP." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Se requiere un nombre de usuario y una contraseña para el proxy HTTP." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"No se pudo procesar la solicitud porque la configuración de la conexión VPN " +"no es válida." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Tipo de conexión no válido." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "No se pudo encontrar el ejecutable de openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Autenticación HMAC no válida." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Número de puerto no válido «%s»." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Protocolo «%s» no válido." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Tipo de proxy «%s» no válido." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Duración «%s» de ping no válida." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Duración «%s» de ping-exit no válida." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Duración «%s» de ping-restart no válida." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Argumento «%s» de max-routes no válido." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Tamaño de clave «%s» no válido." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Configuración no válida con tls-remote y verify-x509-name." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "verify-x509-name no válido." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Número de segundos de regenociación «%s» no válido." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Tamaño de MTU del TUN «%s» no válido." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Tamaño de fragmento «%s» no válido." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Tipo de conexión «%s» desconocido." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Usuario «%s» no encontrado, compruebe NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Grupo «%s» no encontrado, compruebe NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Autenticación pendiente no manejada." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "No salir cuando la conexión VPN termine" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Activar el registro de depurado detallado (puede mostrar las contraseñas)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "Nombre D-Bus que usar para esta instancia" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service proporciona la integración de OpenVPN con NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "Autenticación TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "Cifrado TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Puede" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Sí" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "General" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Pasarela:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Puertas de enlace remotas, con protocolo y puerto opcionales (ej. ovpn.corp." +"com:1234:tcp). Puede especificar varios elementos por redundancia (use comas " +"para separar las entradas).\n" +"opción: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Autenticación" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "CA" +msgstr "CA" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User" +msgstr "Usuario" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "User name:" +msgstr "Nombre de usuario:" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Contraseña pasada a OpenVPN cuando se solicita.\n" +"opción: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nombre de usuario pasado a OpenVPN cuando se solicita.\n" +"opción: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Remote IP Address:" +msgstr "Dirección IP remota:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Local IP Address:" +msgstr "Dirección IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Key Direction:" +msgstr "Dirección de la clave:" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "Static Key:" +msgstr "Clave estática:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Archivo precompartido para el modo de cifrado de clave estática.\n" +"opción: static " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Dirección IP del servidor VPN.\n" +"opción: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Dirección IP del cliente VPN.\n" +"opción: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Dirección para el modo de cifrado de clave estática (no TLS).\n" +"Si se usa la dirección de la clave, debe ser la opuesta a la usada en el par " +"VPN. Por ejemplo, si el par usa «1», esta conexión debe usar «0». Si no está " +"seguro de qué valor usar, contacte con el administrador de su sistema.\n" +"opción: static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Select an authentication mode." +msgstr "Seleccionar un modo de autenticación." + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "Ad_vanced…" +msgstr "A_vanzado…" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "OpenVPN Advanced Options" +msgstr "Opciones avanzadas de OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Use custom gateway p_ort:" +msgstr "Usar un p_uerto de pasarela personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Número de puerto TCP/UDP para el par. (Valor predeterminado cuando no hay " +"puerto para la puerta de enlace).\n" +"opción: port" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Use custom _renegotiation interval:" +msgstr "Usar intervalo de _renegociación personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegociar la clave del canal de datos después del número de segundos " +"especificado.\n" +"opción: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use L_ZO data compression" +msgstr "Usar compresión L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Usar compresión LZO rápida.\n" +"opción: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Usar el modo de compresión de datos LZO.\n" +"opción: comp-lzo" + +# include/printconf/dialogs.ycp:150 +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "Use a _TCP connection" +msgstr "Usar conexión _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Usar TCP para comunicarse con el equipo remoto.\n" +"(Este es el valor predeterminado usado solo cuando no se especifica en " +"protocolo para la puerta de enlace)\n" +"opción: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Set virtual _device type:" +msgstr "Establecer tipo de _dispositivo virtual:" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" +"Establecer el tipo y el nombre del dispositivo virtual explícitamente (TUN/" +"TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Establecer el tipo y del dispositivo virtual explícitamente (TUN/TAP).\n" +"opción: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid " and _name:" +msgstr " y _nombre:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Usar nombre personalizado para el dispositivo TUN/TAP virtual (en lugar de " +"«tun» o «tap»).\n" +"opción: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Usar unidad máxima de transmisión (MTU) del _túnel personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Tomar la MTU del dispositivo TUN para que sea el valor especificado y " +"obtener el MTU del enlace de este valor.\n" +"opción: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom UDP _fragment size:" +msgstr "Usar tamaño de _fragmentación UDP personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Activar la fragmentación interna de datos con este tamaño máximo.\n" +"opción: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Restringir el tamaño del segmento máximo del túnel TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restringir túnel TCP MSS.\n" +"opción: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Rando_mize remote hosts" +msgstr "Aleatori_zar los equipos remotos" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Aleatorizar el orden de la lista de puertas de enlace (remotas) como un tipo " +"de medida de balanceo de carga básica.\n" +"opción: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "IPv6 tun link" +msgstr "Enlace tun IPv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Construir un enlace capaz de reenviar el trafico IPv6\n" +"opción: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "Specify _exit or restart ping:" +msgstr "Especifique ping _exit o restart:" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Salir o reiniciar pasados n segundos sin recibir ping u otro paquete del " +"equipo remoto.\n" +"opción: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Specify pin_g interval:" +msgstr "Especificar intervalo de ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Ping remoto sobre el canal de control TCP/UDP si no se han enviado paquetes " +"durante al menos n segundos.\n" +"opción: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Aceptar paquetes autenticados de cualquier dirección (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Permitir al par remoto cambiar su dirección IP y/o número de puerto, como se " +"hace en DHCP (esto es lo predeterminado si no se usa --remote). --float " +"cuando se especifica con --remote permite que usa sesión de OpenVPN inicie " +"una conexión a un par en una dirección conocida, sin embargo, si los " +"paquetes llegan de una dirección nueva y pasan todas las pruebas de " +"autenticación, la nueva dirección tomará el control de la sesión. Esto es " +"útil cuando se conecta a un par que usa una dirección dinámica como un " +"usuario de marcador o un cliente DHCP.\n" +"\n" +"Básicamente, --float indica a OpenVPN que acepte paquetes autenticados de " +"cualquier dirección, no sólo de la dirección especificada en la opción --" +"remote.\n" +"\n" +"opción: float" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "Specify max routes:" +msgstr "Especificar el máximo de rutas:" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Indique el número máximo de rutas que el servidor puede especificar.\n" +"opción: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Cifrar paquetes con un algoritmo de cifrado. El predeterminado es BF-CBC " +"(Blowfish in Cipher Block Chaining mode).\n" +"opción: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "Use custom _size of cipher key:" +msgstr "Usar tamaño per_sonalizado para la clave de cifrado:" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Establecer el tamaño de la clave de cifrado a un valor personalizado. Si no " +"se especifica, lo predeterminado es lo específico del cifrado.\n" +"opción: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autenticar paquetes con HMAC usando un algoritmo de resumen de mensaje. El " +"predeterminado es SHA1.\n" +"opción: auth" + +# clients/inst_custom_part.ycp:2337 +# clients/inst_custom_part.ycp:2336 +# clients/inst_custom_part.ycp:2350 +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Ci_pher:" +msgstr "Cifrado:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_HMAC Authentication:" +msgstr "Autenticación HMAC" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Security" +msgstr "Seguridad" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_Subject Match:" +msgstr "Coincidencia de asunto:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Asunto o nombre común que verificar en la información del certificado del " +"servidor.\n" +"\n" +"opción: verify-x509-name subject-or-name [modo]\n" +"opción (modo heredado): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "Server _Certificate Check:" +msgstr "Comprobar el _certificado del servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Verificar la identificación del certificado del servidor.\n" +"\n" +"Cuando está activada, la conexión sólo será correcta si el certificado del " +"servidor coincide con las propiedades esperadas. La coincidencia puede " +"aplicar al asunto completo del certificado (todos los campos), o sólo al " +"nombre común (campo CN).\n" +"\n" +"La opción heredada tls-remote está obsoleta y se ha eliminado en OpenVPN 2.4 " +"y posterior. No lo use más.\n" +"\n" +"opción: verify-x509-name subject-or-name [modo]\n" +"opción (modo heredado): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verificar el uso de la firma del certificado del par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Requerir que el certificado del par esté firmado usando una clave explícita " +"y una clave extendida basada en las reglas RFC3280 de TLS." + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "_Remote peer certificate TLS type:" +msgstr "Tipo de certificado TLS del par _remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Requerir que el certificado del par esté firmado usando una clave explícita " +"y una clave extendida basada en las reglas RFC3280 de TLS.\n" +"opción: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Verificar la firma del certificado nsCertType del par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Requerir que el certificado del par esté firmado usando una clave nsCertType " +"explícita." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Firma nsCertType del certificado del par _remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Requerir que el certificado del par esté firmado usando una clave nsCertType " +"explícita.\n" +"opción: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "Key _Direction:" +msgstr "Dirección de la clave:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Añadir una capa de autenticación HMAC adicional encima del canal TLS de " +"control para protegerse de ataques de DoS.\n" +"opción: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parámetro de dirección para el modo de clave estática. \n" +"Si se usa la dirección de la clave, debe ser la opuesta a la usada en el par " +"VPN. Por ejemplo, si el par usa «1», esta conexión debe usar «0». Si no está " +"seguro de qué valor usar, contacte con el administrador de su sistema.\n" +"opción: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Key _File:" +msgstr "Archivo de clave:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Mode" +msgstr "Modo" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Añadir una capa adicional de cifrado o autenticación HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "Additional TLS authentication or encryption" +msgstr "Cifrado o autenticación TLS adicional" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "TLS Authentication" +msgstr "Autenticación TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipo de proxy: HTTP o Socks.\n" +"opción: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Proxy _Type:" +msgstr "Tipo de proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Seleccionar esta opción si su organización requiere usar un servidor " +"proxy para acceder a Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "Server _Address:" +msgstr "Dirección del servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conectar a un equipo remoto a través de un proxy con esta dirección.\n" +"opción: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "_Port:" +msgstr "Puerto:" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conectar a un equipo remoto a través de un proxy con este puerto.\n" +"opción: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:146 +msgid "_Retry indefinitely when errors occur" +msgstr "_Reintentar indefinidamente cuando haya errores" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Reintentar indefinidamente ante errores del proxy. Simula un reinicio " +"SIGUSR1.\n" +"opción: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "Proxy _Username:" +msgstr "Usuario del proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "Proxy Passwor_d:" +msgstr "Contraseña del proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Nombre de usuario del proxy HTTP/Socks pasado a OpenVPN cuando se solicita." + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Contraseña del proxy HTTP/Socks pasada a OpenVPN cuando se solicita." + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "_Show password" +msgstr "Mostrar contraseña" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Proxies" +msgstr "Proxies" + +#: ../properties/nm-openvpn-dialog.ui.h:155 +msgid "Path mtu discovery" +msgstr "Ruta de descubrimiento de mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "Misc" +msgstr "Varios" + +#~| msgid "Choose your personal certificate..." +#~ msgid "Choose your personal certificate…" +#~ msgstr "Elija su certificado personal…" + +#~| msgid "Choose your private key..." +#~ msgid "Choose your private key…" +#~ msgstr "Elija su clave privada…" + +#~| msgid "Choose a Certificate Authority certificate..." +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Elija un certificado de una CA…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "Certificados PEM o PKCD#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "Certificados PEM (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Falta la dirección IP local para el modo de clave estática." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Falta la dirección IP remota para el modo de clave estática." + +#~ msgid "_Show passwords" +#~ msgstr "Mostrar contraseñas" + +#~ msgid "Password for private key" +#~ msgstr "Contraseña para la clave privada" + +#~ msgid "Private Key Password:" +#~ msgstr "Contraseña de la clave privada:" + +#~| msgid "" +#~| "Local peer's private key in .pem format.\n" +#~| "config: key" +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Clave privada del par local, en formato .pem.\n" +#~ "opción: key" + +#~ msgid "Private Key:" +#~ msgstr "Clave privada:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Archivo de autoridad certificadora (CA) en formato .pem.\n" +#~ "opción: ca" + +#~ msgid "CA Certificate:" +#~ msgstr "Certificado CA:" + +#~ msgid "User Certificate:" +#~ msgstr "Certificado de usuario:" + +#~| msgid "" +#~| "Local peer's signed certificate in .pem format (signed by CA of CA " +#~| "Certificate).\n" +#~| "config: cert" +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Certificado firmado del par local, en formato .pem (firmado por el " +#~ "certificado de una CA).\n" +#~ "opción: cert" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "no se puede escribir <%s> de la línea %ld en el archivo «%s»" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "No se pudo procesar la solicitud porque el tipo de la conexión openvpn no " +#~ "es válido." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "General" + +#~ msgid "Authentication" +#~ msgstr "Autenticación" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Conectar sólo con servidores cuyos certificados coincidan con el " +#~ "asunto proporcionado.\n" +#~ "Ejemplo: /CN=mivpn.empresa.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Sólo aceptar conexiones de un equipo con nombre X509 o un nombre común " +#~ "igual al especificado.\n" +#~ "opción: tls-remote" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "opción %s espera exactamente %u argumentos" + +#~ msgid "empty %s service argument" +#~ msgstr "argumento de servicio «%s» vacío" + +#~ msgid "missing certificate file name" +#~ msgstr "falta el nombre de archivo del certificado" + +#~ msgid "empty tls-remote argument" +#~ msgstr "argumento tls-remoto vacío" + +#~ msgid "could not open file for writing" +#~ msgstr "no se pudo abrir el archivo para escritura" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Gestor de conexiones VPN (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Añadir, quitar y editar conexiones VPN" + +#~ msgid "Saved" +#~ msgstr "Guardada" + +#~ msgid "Always Ask" +#~ msgstr "Preguntar siempre" + +#~ msgid "Not Required" +#~ msgstr "No requerido" + +# include/scanner/scanner_usb.ycp:47 +# include/scanner/scanner_usb.ycp:47 +# include/scanner/scanner_usb.ycp:47 +#~ msgid "Use a TA_P device" +#~ msgstr "Usar dispositivo TA_P" + +#~ msgid "_Password:" +#~ msgstr "_Contraseña:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Contraseña _secundaria:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "M_ostrar contraseñas" + +#~ msgid "No VPN secrets!" +#~ msgstr "No hay secretos VPN." + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "No se pudo procesar la solicitud porque no se ha proporcionado un nombre " +#~ "de usuario." + +#~ msgid "_Username:" +#~ msgstr "Nombre de _usuario:" + +#~ msgid "_Domain:" +#~ msgstr "_Dominio:" + +# include/printconf/dialogs.ycp:150 +#~ msgid "Connect _anonymously" +#~ msgstr "Conectar _anónimamente" + +# include/scanner/scanner_overview.ycp:85 +# include/scanner/scanner_overview.ycp:85 +# include/scanner/scanner_overview.ycp:85 +#~ msgid "Connect as _user:" +#~ msgstr "Conectar como _usuario:" + +# include/partitioning/custom_part_dialogs.ycp:67 +# include/partitioning/custom_part_dialogs.ycp:67 +# include/partitioning/custom_part_dialogs.ycp:67 include/partitioning/custom_part_dialogs.ycp:197 +#~ msgid "_Remember password for this session" +#~ msgstr "_Recordar la contraseña para esta sesión" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Guardar la contraseña en el depósito de claves" + +#~ msgid "Certificate Password:" +#~ msgstr "Contraseña del certificado:" + +#~ msgid "Select A File" +#~ msgstr "Seleccione un archivo" + +#~ msgid "gtk-cancel" +#~ msgstr "gtk-cancel" + +#~ msgid "gtk-ok" +#~ msgstr "gtk-ok" + +#~ msgid "page 1" +#~ msgstr "página 1" + +#~ msgid "page 2" +#~ msgstr "página 2" + +#~ msgid "page 3" +#~ msgstr "página 3" + +#~ msgid "page 4" +#~ msgstr "página 4" diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..cd8af69 --- /dev/null +++ b/po/et.po @@ -0,0 +1,855 @@ +# GNOME NetworkManager - OpenVPN klient +# +# Copyright (C) 2007 The GNOME Project. +# This file is distributed under the same license as the NetworkManager-openvpn package. +# +# Priit Laes , 2007. +# Ivar Smolin , 2007. +# Mattias Põldaru , 2007-2011. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-03-15 08:45+0300\n" +"Last-Translator: Mattias Põldaru \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN-i autentimine" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Parool:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Sertifikaadi parool:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN-i autentimine" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Sertifikaadi _parool:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "VPN-võrgule '%s' ligipääsuks pead end autentima." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Vali isiklik sertifikaat..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Vali privaatvõti..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "Pole vajalik" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Vali sertifikaadikeskuse serdifail..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Vali OpenVPN püsivõti..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Pole" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM või PKCS#12 sertifikaadid (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM sertifikaadid (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN püsivõtmed (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Vaikimisi" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Pole vajalik" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Ühildub OpenVPN serveriga." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Sertifikaadid (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Parool" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Parool koos sertifikaatidega (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Püsivõti" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Üldine" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentimine" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Näita paroole" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Vali privaatvõti..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Privaatvõtme parool:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Privaatvõti:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Sertifikaadikeskuse serdifail:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Kasutaja sertifikaat:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Kasutajanimi:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Kaugmasina IP-aadress:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Kohalik IP-aadress:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Võtme suund:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Püsivõti:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Kui kasutatakse võtme suunda, peab see olema vastupidine teise VPN'i " +"võtme suunale. Näitaks, kui teine masin kasutab '1', peab siin olema '0'. " +"Kui sa ei tea, millist väärtust kasutada, küsi süsteemiadministraatorilt." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tüüp:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS'iga autentimine" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Laiendatud..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN laiendatud sätted" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Kasuta muud gateway _porti:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Kohandatud _kordusläbirääkimiste intervall:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "L_ZO-pakkimise kasutamine" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "_TCP-ühenduse kasutamine" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Kohandatud _tunneli suurima edastusühiku suurus (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Kohandatud UDP-_fragmendi suurus:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Tunneli TCP maksimaalse segmendi suurus piiratud (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Üldine" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Šiffer:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC'iga autentimine" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Turvalisus" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Kattuv nimi:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Ühendus luuakse ainult serveriga, mille sertifikaat kattub määratud " +"nimega.\n" +"Näiteks: /CN=myvpn.kompanii.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Lisaks TLS-autentimise kasutamine" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Lisaks TLS-autentimise kasutamine" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Võtme suund:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Kui kasutatakse võtme suunda, peab see olema vastupidine teise VPN'i " +"võtme suunale. Näitaks, kui teine masin kasutab '1', peab siin olema '0'. " +"Kui sa ei tea, millist väärtust kasutada, küsi süsteemiadministraatorilt." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Võtmefail:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS'iga autentimine" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Proksi liik:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Vali see, kui sinu organisatsioon nõuab interneti kasutamist " +"proksiserveri kaudu." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Serveri aadress:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "Vigade korral proovitakse lõpmatuseni uuesti" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "_Proksi kasutajanimi:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Proksi parool:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Näita parooli" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Proksid" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Privaatvõtme parool:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Lisaks TLS-autentimise kasutamine" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Parool:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Parool _uuesti:" + +#~ msgid "_Username:" +#~ msgstr "_Kasutajanimi:" + +#~ msgid "_Domain:" +#~ msgstr "_Domeen:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Ühendu _anonüümselt" + +#~ msgid "Connect as _user:" +#~ msgstr "Ühendu ka_sutajana:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Jäta parool selle sessiooni ajaks meelde" + +#~ msgid "_Save password in keyring" +#~ msgstr "Parooli salvestamine _võtmerõngasse" + +#~ msgid "Use a TA_P device" +#~ msgstr "TA_P-seadme kasutamine" diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..bc3646b --- /dev/null +++ b/po/eu.po @@ -0,0 +1,939 @@ +# Basque translation of NetworkManager-OpenVPN. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Iñaki Larrañaga Murgoitio , 2008, 2009, 2010, 2014, 2015. +# Edurne Labaka , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 13:29+0100\n" +"PO-Revision-Date: 2015-02-07 18:01+0100\n" +"Last-Translator: Iñaki Larrañaga Murgoitio \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.4\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autentifikatu %s VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Pasahitza:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Ziurtagiriaren pasahitza:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentifikatu VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_Ziurtagiriaren pasahitza:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Autentifikatu egin behar zara '%s' VPN-ra (Sare Birtual Pribatua) " +"sarbidetzeko." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN konexioen kudeatzailea (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Gehitu, kendu eta editatu VPN konexioak" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Aukeratu ziurtagiri pertsonala..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Aukeratu gako pribatua..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Gordeta" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Galdetu beti" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Ez da beharrezkoa" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Aukeratu Ziurtagiri-Emailearen ziurtagiria..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Aukeratu OpenVPN gako estatikoa..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Bat ere ez" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM edo PKCS#12 ziurtagiriak (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM ziurtagiriak (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN gako estatikoak (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Lehenetsia" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Zerbitzaria" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Bezeroa" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Ez da beharrezkoa" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "(automatikoa)" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN zerbitzariarekin bateragarria." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Ziurtagiriak (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Pasahitza" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Pasahitza ziurtagiriekin (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Gako estatikoa" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Ezin izan da openvpn bitarra aurkitu." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Ez dago VPNaren konfigurazioaren aukerarik." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Orokorra" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Atebidea:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +#, fuzzy +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Urruneko atebideak, aukerako atakarekin eta protokoloarekin (adib., ovpn." +"corp.com:1234:tcp). Hainbat ostalari zehatz ditzakezu erredundantziarentzako " +"(erabili komak edo zuriuneak bereizteko).\n" +"konfigurazioa: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentifikazioa" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Erakutsi pasahitzak" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Gako pribatuaren pasahitza" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Gako pribatuaren pasahitza:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Lokaleko parekoaren gako pribatua .pem formatuan.\n" +"konfigurazioa: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Gako pribatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Ziurtagiri-Emailearen (ZE) fitxategia .pem formatuan.\n" +"konfigurazioa: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "ZE ziurtagiria:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Erabiltzailearen ziurtagiria:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Lokaleko parekoaren gako pribatua .pem formatuan (ZE ziurtagiriko ZE batek " +"sinatuta).\n" +"konfigurazioa: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"OpenVPN-ri eskatutakoan igorritako pasahitza.\n" +"konfigurazioa: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Erabiltzaile-izena:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"OpenVPN-ri eskatutakoan igorritako erabiltzaile-izena.\n" +"konfigurazioa: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Lokaleko VPN amaiera-puntuaren IP helbidea.\n" +"konfigurazioa: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Urruneko IP helbidea:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "IP helbide lokala:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Urruneko VPN amaiera-puntuaren IP helbidea.\n" +"konfigurazioa: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Gakoaren helbidea:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Gako estatikoa:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Gako estatikoaren moduaren (ez-TLS) aurre-partekatutako fitxategia.\n" +"konfigurazioa: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Gako estatikoaren moduaren (ez-TLS) helbidea.\n" +"Gakoaren helbidea erabiltzen bada, VPN parekoarenaren aurkakoa izan behar " +"du. Esate baterako, parekoak '1' erabiltzen badu, konexio honek '0' erabili " +"behar du. Zein balio erabili behar duzun ez badakizu, jar zaitez sistemako " +"administratzailearekin harremanetan.\n" +"konfigurazioa: static [helbidea]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Mota:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Hautatu autentifikazioaren modua." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Aurreratua..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN-ren aukera aurreratuak" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Erabili atebidearen _ataka pertsonalizatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"TCP/UDP protokoloaren ataka lokaleko parekoarentzako.\n" +"konfigurazioa: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Erabili berriro negoziatzeko bitarte pertsonalizatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Negoziatu berriro datu-kanalaren gakoa zehaztutako segundoen ostean.\n" +"konfigurazioa: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Erabili _LZO datu-konpresioa" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Erabili LZO konpresio azkarra.\n" +"konfigurazioa: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Erabili _TCP konexioa" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Erabili TCP urruneko ostalariarekin komunikatzeko.\n" +"konfigurazioa: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "Ezarri gailu _birtual mota:" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Ezarri esplizituki gailu birtualaren mota eta izena (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Ezarri esplizituki gailu birtualaren mota eta izena (TUN/TAP).\n" +"konfigurazioa: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr " eta _izena:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Erabili izen pertsonalizatua TUN/TAP gailu birtualean ('tun' edo 'tap' " +"lehenetsien ordez).\n" +"konfigurazioa: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Erabili _tunelaren Gehienezko Transmisio Unitatea (MTU) pertsonalizatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Hartu TUN gailuaren MTU-a zehaztutako balioa izateko, eta eratorri MTU " +"esteka harengandik.\n" +"konfigurazioa: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Erabili UDP _zatiaren tamaina pertsonalizatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Gaitu barneko datagrama zatikatzea bere gehienezko tamainarekin.\n" +"konfigurazioa: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Murriztu TCP tunela gehienezko segmentu-tamainara (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Murriztu TCP MSS tunela.\n" +"konfigurazioa: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Ausaz nahasi urruneko ostalariak" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Ausaz nahasi (urruneko) atebideen zerrendaren ordena oinarrizko kargen " +"balantzea neurtzeko balitz bezala\n" +"konfigurazioa: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Orokorra" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Enkriptatu paketeak zifratzeko algoritmoarekin. Lehenetsia BF-CBC da " +"(Blowfish modua Cipher Block Chaining-en).\n" +"konfigurazioa: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Erabili zifratze-gakoaren _tamaina pertsonalizatua:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Ezarri zifratze-gakoaren tamaina pertsonalizatuarekin. Ez bada zehazten " +"zifratzearen zehaztasuneko tamaina lehenetsia erabiliko\n" +"konfigurazioa: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentifikatu paketeak HMAC-ekin mezuen laburpenaren algoritmoa erabiliz. " +"Lehenetsia SHA1 da.\n" +"konfigurazioa: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Zifratua:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC autentifikazioa:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Segurtasuna" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Gaiaren bat etortzea:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Konektatu soilik emandako gaiarekin bat datozen ziurtagiriak dituzten " +"zerbitzariekin.\n" +"Adibidez: /CN=nirevpn.enpresa.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Onartu konexioak X509 izena duen, edo zehaztutako izen amankomunaren berdina " +"duen ostalari batetik soilik.\n" +"konfigurazioa: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Egiaztatu parekoaren (zerbitzaria) ziurtagirian sinaduraren erabilera" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Parekoaren ziurtagiria gako zehatz baten erabilerarekin sinatuta eta " +"gakoaren erabilera RFC3280 TLS arauetan oinarrituta egotea egotea eskatzen " +"du." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "_Urruneko parekoaren TLS ziurtagiri mota:" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Parekoaren ziurtagiria gako zehatz baten erabilerarekin sinatuta eta " +"gakoaren erabilera RFC3280 TLS arauetan oinarrituta egotea egotea eskatzen " +"du.\n" +"konfigurazioa: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Erabili TLS autentifikazio gehigarria" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Gehitu HMAC autentifikazioaren geruza gehigarria." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Gakoaren helbidea:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Gehitu HMAC autentifikazioaren geruza gehigarria TLS kontrol-kanalaren " +"gainean DoS erasoetatik babesteko.\n" +"konfigurazioa: tls-auth [helbidea]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Helbidearen parametroa gakoaren modu estatikoarentzako.\n" +"Gakoaren helbidea erabiltzen bada, VPN parekoarenaren aurkakoa izan behar " +"du. Esate baterako, parekoak '1' erabiltzen badu, konexio honek '0' erabili " +"behar du. Zein balio erabili behar duzun ez badakizu, jar zaitez sistemako " +"administratzailearekin harremanetan.\n" +"konfigurazioa: tls-auth [helbidea]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Gakoaren fitxategia:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS autentifikazioa" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxy mota: HTTP edo Socks.\n" +"konfigurazioa: http-proxy edo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Proxy mota:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Hautatu aukera hau erakundeak proxy zerbitzari bat behar badu Internetera " +"sarbidetzeko." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Zerbitzariaren helbidea:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Konektatu urruneko ostalariarekin helbide hau duen proxy-aren bidez.\n" +"konfigurazioa: http-proxy edo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Ataka:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Konektatu urruneko ostalariarekin ataka hau duen proxy-aren bidez\n" +"konfigurazioa: http-proxy edo socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Saiatu behin et berriz errorea gertatzean" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Saiatu etengabe proxy-aren erroreen aurrean. Honek SIGUSR1 leheneratzea " +"simulatzen du.\n" +"konfigurazioa: http-proxy-retry edo socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Proxy-aren erabiltzaile-izena:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Proxy-aren pasahitza:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "OpenVPN-ri igorritako HTTP/Socks proxy-aren erabiltzaile-izena." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "OpenVPN-ri igorritako HTTP/Socks proxy-aren pasahitza." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "_Erakutsi pasahitza" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Proxy-ak" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "'%s' helbide baliogabea" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" +"baliogabeko '%s' propietatearen zenbaki osokoa edo [%d -> %d] barrutitik " +"kanpo" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "baliogabeko '%s' propietatearen boolearra (ez bai/ez)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "kudeatu gabeko '%s' propietatearen '%s' mota" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "'%s' propietatea baliogabea edo ez dago onartuta" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Ez dago VPNaren konfigurazioaren aukerarik." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Erabiltzaile-izena behar da." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Pasahitza behar da." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Erabiltzaile-izena eta pasahitza behar dira." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Gako pribatuaren pasahitza behar da." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "HTTP proxy-aren erabiltzaile-izena behar da." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "HTTP proxy-aren pasahitza behar da." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "HTTP proxy-aren erabiltzaile-izena eta pasahitza behar dira." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Ezin izan da openvpn bitarra aurkitu." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Baliogabeko HMAC autentifikazioa." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Baliogabeko konexio mota." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Baliogabeko '%s' ataka zenbakia." + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Baliogabeko '%s' protokoloa." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Baliogabeko '%s' proxy mota." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Baliogabeko '%s' gako-tamaina." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Baliogabeko berriro negoziatzeko '%s' segundoak." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Baliogabeko '%s' TUN MTU tamaina." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Baliogabeko '%s' zati-tamaina." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Gako estatikoaren moduaren lokaleko IP helbidea falta da." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Gako estatikoaren moduaren urruneko IP helbidea falta da." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "'%s' konexio mota ezezaguna." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Ezin izan da eskaera prozesatu VPN konexioaren ezarpenak baliogabekoak " +"direlako." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Ezin izan da eskaera prozesatu openvpn konexioaren mota baliogabea delako." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Autentifikatzea falta dena kudeatu gabe." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Ez irten VPNaren konexioa amaitzean" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Gaitu arazketaren erregistro xehea (pasahitzak erakuts ditzake)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"'nm-openvpn-service' zerbitzuak OpenVPN gaitasuna erabiltzea baimentzen dio " +"NetworkManager-i." + +#~ msgid "Use a TA_P device" +#~ msgstr "Erabili TA_P gailua" + +#~ msgid "_Password:" +#~ msgstr "_Pasahitza:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Bigarren pasahitza:" + +#~ msgid "_Username:" +#~ msgstr "_Erabiltzaile-izena:" + +#~ msgid "_Domain:" +#~ msgstr "_Domeinua:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Konektatu _anonimo gisa" + +#~ msgid "Connect as _user:" +#~ msgstr "Konektatu _erabiltzaile gisa:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Gogoratu pasahitza saio honetan" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Gorde pasahitza gako-sortan" diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..b127b73 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,851 @@ +# Persian translation for network-manager-openvpn. +# Copyright (C) 2010 IFSUG Translation Group. +# This file is distributed under the same license as the network-manager-openvpn package. +# Arash Mousavi , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2010-10-20 23:48+0330\n" +"Last-Translator: Arash Mousavi \n" +"Language-Team: Persian\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "تایید هویت وی‌پی‌ان" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "گذرواژه:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "گذرواژه‌ی تاییدیه:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "تایید هویت وی‌پی‌ان" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_گذرواژه‌ی تاییدیه:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "برای دسترسی به شبکه خصوصی مجازی «%s» احتیاج به تایید هویت دارید." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "تاییدیه شخصی خود را انتخاب کنید..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "کلید اختصاصی خود را انتخاب کنید..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "لازم نیست" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "انتخاب یک تاییدیه صلاحیت تاییدیه..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "یک کلید ایستا OpenVPN انتخاب کنید..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "هیچ‌کدام" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "تادییه‌های PEM و یا PKCS#12 شامل (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "تادییه‌های PEM شامل (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "کلیدهای ایستا OpenVPN شامل (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "پیش‌فرض" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "لازم نیست" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "سازگار با کارگزار OpenVPN" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "تاییدیه (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "گذرواژه" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "گذرواژه همراه با تاییدیه (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "کلید ایستا" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "عمومی" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_دروازه:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "تایید هویت" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "نمایش گذرواژه‌ها" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "کلید اختصاصی خود را انتخاب کنید..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "گذرواژه کلید اختصاصی:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "کلید اختصاصی:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "تاییدیه CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "تاییدیه کاربر:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "نام‌کاربری:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "آدرس IP دوردست:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "آدرس IP محلی:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "جهت کلید:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "کلید ایستا:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"اگر از جهت کلید استفاده شود، باید با همتا VPN خود مخالف باشد. برای مثال، " +"اگر همتا از «۱» استفاده کند، این اتصال باید از «۰» استفاده کند. اگر شما از " +"مقداری که باید استفاده نامطمئن هستید، با مدیریت سیستم خود تماس بگیرید." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "نوع:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "تاییدیه TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_پیشرفته..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "گزینه‌های پیشرفته‌ی OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "استفاده از _درگاه دروازه‌ی اختصاصی:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "استفاده از وقفه دلخواه در ارتباط مجدد:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "استفاده از فشرده‌سازی اطلاعات _LZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "استفاده از یک اتصال _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "استفاده از _تونل بیشینه ارسال واحد دلخواه (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "استفاده از اندازه _قطعه USP دلخواه:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "منحصر کردن تونل TCP به بیشینه اندازه قطعه (MMS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "عمومی" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "رمز (Cipher):" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "تایید هویت HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "امنیت" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "مطابقت با مورد:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"اتصال تنها به کارگزارهایی تادییه آنها با مورد داده شده همخوان باشد.\n" +"مثال: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "استفاده از تاییدیه TLS اضافی" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "استفاده از تاییدیه TLS اضافی" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "جهت کلید:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"اگر از جهت کلید استفاده شود، باید با همتا VPN خود مخالف باشد. برای مثال، " +"اگر همتا از «۱» استفاده کند، این اتصال باید از «۰» استفاده کند. اگر شما از " +"مقداری که باید استفاده نامطمئن هستید، با مدیریت سیستم خود تماس بگیرید." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "پرونده‌ی کلید:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "تاییدیه TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "نوع پیشکار:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"چناچه موسسه شما برای اتصال به اینترنت به پیشکار احتیاج دارد، از این گزینه " +"استفاده کنید." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "آدرس کارگزار:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "درگاه:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "تلاش مجدد نامحدود در صورت بروز خطا" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "نام‌کاربری پیشکار:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "گذرواژه پیشکار:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "نمایش گذرواژه‌ها" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "پیشکارها:" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "گذرواژه کلید اختصاصی:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "استفاده از تاییدیه TLS اضافی" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_گذرواژه:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_دومین گذرواژه:" + +#~ msgid "_Username:" +#~ msgstr "_نام کاربری:" + +#~ msgid "_Domain:" +#~ msgstr "_دامنه:" + +#~ msgid "Connect _anonymously" +#~ msgstr "اتصال _ناشناس" + +#~ msgid "Connect as _user:" +#~ msgstr "اتصال با عنوان _کاربر:" + +#~ msgid "_Remember password for this session" +#~ msgstr "گذرواژهٔ در طول این نشست به _خاطر سپرده شود" + +#~ msgid "_Save password in keyring" +#~ msgstr "_ذخیره‌ی گذرواژه در دسته‌کلید" + +#~ msgid "Use a TA_P device" +#~ msgstr "استفاده از یک _دستگاه TAP" diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..f5ab141 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,1583 @@ +# Finnish messages for NetworkManager-openvpn. +# Copyright (C) 2006-2008 Free Software Foundation. +# +# Suomennos: https://l10n.gnome.org/teams/fi/ +# +# Ilkka Tuohela , 2006-2008. +# Jiri Grönroos , 2012, 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-28 15:51+0000\n" +"PO-Revision-Date: 2017-09-25 20:09+0300\n" +"Last-Translator: Jiri Grönroos \n" +"Language-Team: suomi \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN-asiakasohjelmisto" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Asiakasohjelmisto OpenVPN-erillisverkkoihin" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Tuki OpenVPN-erillisverkkoyhteyksien määrittämiseen." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN on suosittu ja monipuolinen sekä avoin VPN-ratkaisu." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "NetworkManagerin kehittäjät" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Todenna VPN-yhteyden %s avaus" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Salasana:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Varmenteen salasana:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "HTTP-välityspalvelimen salasana:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Todenna VPN-yhteyden avaus" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Varmenteen _salasana:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "HTTP-välityspalvelimen _salasana:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Yhteydenotto VPN-verkkoon “%s” vaatii tunnistautumisen." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Valitse OpenPVN:n kiinteä avain…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Ei mitään" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Kiinteät OpenVPN-avaimet (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Oletus" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Palvelin" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Asiakas" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Ei vaadittu" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(automaattinen)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "" +msgstr[1] "" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "" +msgstr[1] "" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "“%s” ei ole hakemisto" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "virheellinen valinta" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "tuntematon tai ei-tuettu valinta" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Tuotava tiedosto ei ollut kelvollinen OpenVPN-asetustiedosto" + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "yhteys ei kelvollinen OpenVPN-yhteys" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/import-export.c:2137 +#, fuzzy, c-format +#| msgid "Failed to save file %s" +msgid "failed to write file: %s" +msgstr "Tiedostoa \"%s\" ei voitu tallentaa" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Yhteensopiva OpenVPN-palvelimen kanssa." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "tuntematon OpenVPN-tiedostopääte" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Varmenteet (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Salasana" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Salasana varmenteiden kanssa (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Kiinteä avain" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "openvpn-objektia ei voitu luoda" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "virheellinen portti" + +#: ../shared/utils.c:215 +#, fuzzy, c-format +msgid "invalid protocol" +msgstr "Virheellinen välityspalvelimen tyyppi \"%s\"." + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "virheellinen osoite “%s”" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "ominaisuus “%s” on virheellinen tai se ei ole tuettu" + +#: ../src/nm-openvpn-service.c:534 +#, fuzzy +msgid "No VPN configuration options." +msgstr "OpenVPN-määrittely" + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Käyttäjätunnus vaaditaan." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Salasana vaaditaan." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Käyttäjätunnus ja salasana vaaditaan." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Yksityisen avaimen salasana vaaditaan." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "HTTP-välityspalvelimen käyttäjätunnus vaaditaan." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "HTTP-välityspalvelimen salasana vaaditaan." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "HTTP-välityspalvelimen käyttäjätunnus ja salasana vaaditaan." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Pyynnön käsittely ei onnistunut, koska VPN-yhteyden asetukset olivat " +"virheelliset." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Virheellinen yhteyden tyyppi." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "openvpn-binääriohjelmaa ei löytynyt." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Virheellinen porttinumero “%s”." + +#: ../src/nm-openvpn-service.c:1385 +#, fuzzy, c-format +msgid "Invalid proto “%s”." +msgstr "Virheellinen välityspalvelimen tyyppi \"%s\"." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Virheellinen välityspalvelimen tyyppi “%s”." + +#: ../src/nm-openvpn-service.c:1475 +#, fuzzy, c-format +msgid "Invalid ping duration “%s”." +msgstr "Virheellinen välityspalvelimen tyyppi \"%s\"." + +#: ../src/nm-openvpn-service.c:1488 +#, fuzzy, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Virheellinen välityspalvelimen tyyppi \"%s\"." + +#: ../src/nm-openvpn-service.c:1501 +#, fuzzy, c-format +#| msgid "Invalid port number '%s'." +msgid "Invalid ping-restart duration “%s”." +msgstr "Virheellinen porttinumero \"%s\"." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "" + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Virheellinen avainkoko “%s”." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "" + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "" + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "" + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Virheellinen TUN MTU -koko “%s”." + +#: ../src/nm-openvpn-service.c:1726 +#, fuzzy, c-format +msgid "Invalid fragment size “%s”." +msgstr "Virheellinen välityspalvelimen tyyppi \"%s\"." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Tuntematon yhteyden tyyppi “%s”." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Käyttäjää “%s” ei löytynyt, tarkista NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Ryhmää “%s” ei löytynyt, tarkista NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Valitse tunnistautumistapa." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Älä lopeta VPN-yhteyden päättyessä" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service tarjoaa integroidun OpenVPN-toiminnon NetworkManageriin." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-todentaminen" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Kyllä" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Yleisasetukset" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Yhdyskäytävä:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Tunnistautuminen" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Käyttäjätunnus:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Etä-IP-osoite:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Paikallinen IP-osoite:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Avaimen suunta:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Kiinteä avain:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +#| msgid "" +#| "Direction for Static Key encryption mode (non-TLS).\n" +#| "If key direction is used, it must be the opposite of that used on the VPN " +#| "peer. For example, if the peer uses '1', this connection must use '0'. " +#| "If you are unsure what value to use, contact your system administrator.\n" +#| "config: static [direction]" +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Kiinteän avaimen salaustilan suunta (ei-TLS).\n" +"Jos avaimen suuntaa käytetään, täytyy annetun arvon olla vastakkainen kuin " +"VPN-yhteyden toisessa päässä. Jos esimerkiksi vastapäässä on arvo 1, tämän " +"täytyy olla 0. Jos et tiedä mitä tässä pitäisi olla, kysy VPN-yhteytesi " +"ylläpitäjältä lisätietoja.\n" +"config: static [suunta]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Tyyppi:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Valitse tunnistautumistapa." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "_Lisäasetukset…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN-lisäasetukset" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Käytä _muuta yhdyskäytävän porttia:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Käytä L_ZO-pakkausta" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "Käytä LZO-pakkausta: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +#, fuzzy +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "Käytä LZO-pakkausta: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Käytä _TCP-yhteyttä" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Aseta virtuaali_laitteen tyyppi:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " ja _nimi:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Käytä omavalintaisia _UDP-osien kokoa:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Määritä enimmäisreitit:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "Salausmenetelmä:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_HMAC-tunnistautuminen:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Salaus" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +#, fuzzy +#| msgid "User Certificate:" +msgid "Server _Certificate Check:" +msgstr "Käyttäjän varmenne:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "Avai_men suunta:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +#, fuzzy +#| msgid "" +#| "Direction parameter for static key mode.\n" +#| "If key direction is used, it must be the opposite of that used on the VPN " +#| "peer. For example, if the peer uses '1', this connection must use '0'. " +#| "If you are unsure what value to use, contact your system administrator.\n" +#| "config: tls-auth [direction]" +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Suunta-arvo kiinteän avaimen tilalle\n" +"Jos avaimen suuntaa käytetään, täytyy annetun arvon olla vastakkainen kuin " +"VPN-yhteyden toisessa päässä. Jos esimerkiksi vastapäässä on arvo 1, tämän " +"täytyy olla 0. Jos et tiedä mitä tässä pitäisi olla, kysy VPN-yhteytesi " +"ylläpitäjältä lisätietoja.\n" +"config: static [suunta]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "_Avaintiedosto:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +#, fuzzy +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Käytä lisäksi TLS-tunnistatumista" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +#, fuzzy +#| msgid "Use additional _TLS authentication" +msgid "Additional TLS authentication or encryption" +msgstr "Käytä lisäksi TLS-tunnistatumista" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "TLS-tunnistautuminen" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "_Välityspalvelimen tyyppi:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "_Palvelimen osoite:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "P_ortti:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "_Yritä jatkuvasti uudelleen virheen tapahtuessa" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Välityspalvelimen _käyttäjätunnus:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Välityspalvelimen _salasana:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "Näyt_ä salasana" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Välityspalvelimet" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "" + +#~ msgid "Choose your personal certificate..." +#~ msgstr "Valitse oma varmenteesi..." + +#~ msgid "Choose your private key..." +#~ msgstr "Valitse yksityinen avaimesi..." + +#~ msgid "Choose a Certificate Authority certificate..." +#~ msgstr "Valitse CA-varmenne..." + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "PEM- tai PKCS#12-varmenteet (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "PEM-varmenteet (*.pem, *.crt, *.key tai *.cer)" + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Yleisasetukset" + +#~ msgid "Authentication" +#~ msgstr "Tunnistautuminen" + +#~ msgid "_Show passwords" +#~ msgstr "_Näytä salasanat" + +#~ msgid "Password for private key" +#~ msgstr "Yksityisen avaimen salasana" + +#~ msgid "Private Key Password:" +#~ msgstr "Yksityisen avaimen salasana:" + +#~ msgid "Private Key:" +#~ msgstr "Yksityinen avain:" + +#~ msgid "CA Certificate:" +#~ msgstr "CA-varmenne:" + +#, fuzzy +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "Pyynnön käsittely ei onnistunut, koska VPN-yhteyden asetukset olivat " +#~ "virheelliset." + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "VPN-yhteyksien hallinta (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Lisää, poista tai muokkaa VPN-yhteyksiä" + +#~ msgid "Saved" +#~ msgstr "Tallennettu" + +#~ msgid "Always Ask" +#~ msgstr "Kysy aina" + +#~ msgid "Not Required" +#~ msgstr "Ei vaadittu" + +#~ msgid "Use a TA_P device" +#~ msgstr "Käytä TA_P-laitetta" + +#~ msgid "_Password:" +#~ msgstr "_Salasana:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Toissijainen salasana:" + +#~| msgid "_Show passwords" +#~ msgid "Sh_ow passwords" +#~ msgstr "_Näytä salasanat" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "Pyynnön käsittely ei onnistunut, koska käyttäjätunnusta ei määritelty." + +#~ msgid "_Domain:" +#~ msgstr "_Toimialue:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Yhdistä _anonyymisti" + +#~ msgid "Connect as _user:" +#~ msgstr "Yhdistä _käyttäjänä:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Muista salasana istunnon ajan" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Tallenna salasana avainrenkaaseen" + +#~ msgid "Certificate Password:" +#~ msgstr "Varmenteen salasana:" + +#~ msgid "Select A File" +#~ msgstr "Valitse tiedosto" + +#~ msgid "gtk-cancel" +#~ msgstr "gtk-cancel" + +#~ msgid "gtk-ok" +#~ msgstr "gtk-ok" + +#~ msgid "page 1" +#~ msgstr "sivu 1" + +#~ msgid "page 2" +#~ msgstr "sivu 2" + +#~ msgid "page 3" +#~ msgstr "sivu 3" + +#~ msgid "page 4" +#~ msgstr "sivu 4" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Seuraava OpenVPN-yhteys luodaan:" + +#~ msgid "Name: %s" +#~ msgstr "Nimi: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Yhteyden tyyppi: X.509-varmenteet" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Varmenne: %s" + +#~ msgid "Key: %s" +#~ msgstr "Avain: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Yhteyden tyyppi: jaettu avain" + +#~ msgid "Shared Key: %s" +#~ msgstr "Jaettu avain: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "Palvelimen IP-osoite: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Yhteyden tyyppi: Salasana" + +#~ msgid "Username: %s" +#~ msgstr "Käyttäjätunnus: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Yhteyden tyyppi: X.509 salasanalla todennuksella" + +#~ msgid "Remote: %s" +#~ msgstr "Palvelin: %s" + +#~ msgid "Device: %s" +#~ msgstr "Laite: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protokolla: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Reitit: %s" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS-todentaminen: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Yhteyden yksityiskohtia voi muuttaa valitsemalla \"Muokkaa\"." + +#~ msgid "Cannot import settings" +#~ msgstr "Asetuksia ei voi tuoda" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "VPN-asetustiedosto \"%s\" ei sisällä kelvollisia tietoja." + +#~ msgid "Select file to import" +#~ msgstr "Valitse tuotava tiedosto" + +#~ msgid "Select certificate to use" +#~ msgstr "Valitse käytettävä varmenne" + +#~ msgid "Select key to use" +#~ msgstr "Valitse käytettävä avain" + +#~ msgid "Select shared key to use" +#~ msgstr "Valitse käytettävä jaettu avain" + +#~ msgid "Select TA to use" +#~ msgstr "Valitse käytettävä TA" + +#~ msgid "Save as..." +#~ msgstr "Tallenna nimellä..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Tiedosto \"%s\" on jo olemassa." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Haluatko korvata sen tiedostolla jota olet tallentamassa?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Asetuksia ei voitu viedä" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "esimerkki: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "C_A-tiedosto:" + +#~ msgid "Connection na_me:" +#~ msgstr "Yhteyden _nimi:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Tuo _tallennettu määrittely..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Yksilöllinen VPN-verkon nimi, esimerkiksi \"Kampusverkko\" tai " +#~ "\"Työpaikan verkko\"." + +#~ msgid "Network" +#~ msgstr "Verkko" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "_Käytä VPN-yhteyttä seuraaville osoitteille" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Syötä järjestelmän ylläpitäjältä saamasi tiedot alla oleviin kohtiin. Älä " +#~ "syötä tähän salasanaasi, sillä se kysytään vasta otettaessa yhteyttä." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Huomaa, että tuotava tiedosto ei ole OpenVPN-asetustiedosto. Kysy " +#~ "ylläpitäjältäsi oikeaa tiedostoa." + +#~ msgid "Shared _key:" +#~ msgstr "_Jaettu avain:" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Käytä _TLS-todentamista:" + +#~ msgid "Use cip_her:" +#~ msgstr "Salaus_menetelmä:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509-varmenteet\n" +#~ "Jaettu avain\n" +#~ "Salasanalla todentaminen\n" +#~ "X.509 salasanatodennuksella" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "_Yhdyskäytävän osoite:" + +#~ msgid "_Key:" +#~ msgstr "_Avain:" + +#~ msgid "_Local IP:" +#~ msgstr "_Paikallinen IP-osoite:" + +#~ msgid "_Remote IP:" +#~ msgstr "_Palvelimen IP-osoite:" + +#~ msgid "_none" +#~ msgstr "_ei mitään" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "VPN-kirjautuminen epäonnistui, koska käyttäjätunnusta ja salasanaa ei " +#~ "hyväsytty, tai varmenteen salasana oli väärin." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "" +#~ "VPN-kirjautuminen epäonnistui, koska VPN-ohjelmaa ei voitu käynnistää." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "VPN-kirjatuminen epäonnistui, koska VPN-ohjelma ei saanut yhteyttä VPN-" +#~ "palvelimeen." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "VPN-kirjautuminen epäonnistui, koska VPN-ohjelma sai epäyhteensopivat " +#~ "asetukset VPN-palvelimelta." + +#~ msgid "VPN connection failed" +#~ msgstr "VPN-yhteyden avaus epäonnistui" + +#~ msgid "Connection Information" +#~ msgstr "Tietoja yhteydestä" + +#~ msgid "CA file:" +#~ msgstr "CA-tiedosto:" + +#~ msgid "Optional" +#~ msgstr "Valinnaiset tiedot" + +#~ msgid "Username:" +#~ msgstr "Käyttäjätunnus:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/salasana" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..d6dca83 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,939 @@ +# French translation of NetworkManager-OpenVPN. +# Copyright (C) 2006-2012 The GNOME Foundation. +# This file is distributed under the same license as the NetworkManager-OpenVPN package +# +# Haïkel Guémar , 2006. +# Jonathan Ernst , 2007. +# Stéphane Raimbault , 2007-2008. +# Robert-André Mauchin , 2007-2008. +# Claude Paroz , 2009. +# Nicolas Repentin , 2010. +# Bruno Brouard , 2011-2012. +# Guillaume Bernard , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2014-09-08 19:35+0200\n" +"Last-Translator: Guillaume Bernard \n" +"Language-Team: français \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "S'authentifier pour le VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Mot de passe :" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Mot de passe du certificat :" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Authentifier le VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_Mot de passe du certificat :" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Authentifiez-vous pour accéder au réseau privé virtuel « %s »." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "Gestionnaire de connexions VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Ajouter, retirer et éditer les connexions VPN" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Choisissez votre certificat personnel..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Choisissez votre clé privée..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Enregistré" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Toujours demander" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Non requis" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Choisissez un certificat d'une autorité de certification..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Choisissez une clé statique OpenVPN..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Aucun" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificats PEM ou PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificats PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Clés statiques OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Par défaut" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Serveur" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Client" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Non requis" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "(automatique)" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Compatible avec le serveur OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certificats (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Mot de passe" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Mot de passe avec certificats (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Clé statique" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Impossible de trouver le binaire openvpn." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Pas d'options de configuration VPN." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Général" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Passerelle :" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Passerelle(s) distante(s), avec un port et un protocole en option (p. ex. " +"ovpn.corp.com:1234:tcp). Vous pouvez définir plusieurs hôtes pour la " +"redondance (mettez des virgules pour séparer les entrées).\n" +"Configuration : remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Authentification" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Afficher les mots de passe" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Mot de passe pour la clé privée" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Mot de passe de la clé privée :" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"La clé privée du pair local au format .pem.\n" +"Configuration : key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Clé privée :" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Fichier de l'autorité de certification (CA) au format .pem.\n" +"Configuration : ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificat du CA :" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificat de l'utilisateur :" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Le certificat signé du pair local au format .pem (approuvé par l'autorité " +"certificatrice CA).\n" +"Configuration : cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Mot de passe transmis à OpenVPN lorqu'il est demandé.\n" +"Configuration : auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nom d'utilisateur :" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nom d'utilisateur transmis à OpenVPN lorqu'il est demandé.\n" +"Configuration : auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adresse IP du point terminal VPN local.\n" +"Configuration : ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Adresse IP distante :" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Adresse IP locale :" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adresse IP du point terminal VPN distant.\n" +"Configuration : ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Direction de la clé :" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Clé statique :" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Fichier pré-partagé pour le mode de chiffrement par clé statique (non TLS).\n" +"Configuration : static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direction pour le mode de chiffrement par clé statique (non TLS).\n" +"Si une direction de clé est utilisée, elle doit être l'opposé de celle " +"utilisée sur le pair VPN. Par exemple, si le pair utilise « 1 », cette " +"connexion doit être « 0 ». Si vous n'êtes pas certain de la valeur à " +"utiliser, contactez votre administrateur système.\n" +"Configuration : static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Type :" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Sélectionner un mode d'authentification." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_vancé..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Options avancées OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Utiliser un p_ort de passerelle personnalisé :" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"Numéro de port TCP/UDP du pair local.\n" +"Configuration : port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Utiliser un intervalle personnalisé de _renégociation :" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renégocie la clé du canal de données après le nombre de secondes spécifié.\n" +"Configuration : reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Utiliser la compression de données L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Utilise la compression rapide LZO.\n" +"Configuration : comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Utiliser une connexion _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Utilise TCP pour communiquer avec l'hôte distant.\n" +"Configuration : proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "Configurer le type du périphérique réseau :" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" +"Configurer explicitement le nom et le type du périphérique réseau (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Configurer explicitement le type de périphérique de réseau virtuel (TUN/" +"TAP).\n" +"Configuration : dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr " et le _nom :" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Utiliser un nom personnalisé pour le périphérique réseau TUN/TAP (au lieu de " +"« tun » ou « tap ».\n" +"Configuration : dev " + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Utilise une unité maximale de _transmission (MTU en anglais) personnalisée :" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Prend la MTU du périphérique TUN comme étant la valeur spécifiée et en " +"déduit le lien MTU.\n" +"Configuration : tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Utiliser une taille personnalisée du _fragment UDP :" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Active la fragmentation du datagramme interne avec cette taille maximale.\n" +"Configuration : fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Taille maximale du segment TCP du tunnel restreint (MSS en anglais)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Fixe la taille MSS du tunnel TCP.\n" +"Configuration : mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Rando_miser les hôtes distants" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Randomise l'ordre dans la liste (distante) des passerelles de manière à " +"faire une sorte de mesure de la charge.\n" +"Configuration : remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Général" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Chiffre les paquets avec un algorithme de chiffrement. Utilise BF-CBC par " +"défaut (mode Blowfish in Cipher Block Chaining).\n" +"Configuration : cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Utili_ser une taille de clef personnalisée :" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Utiliser une valeur personnalisée pour la taille de la clé. Si non spécifié, " +"la valeur par défaut du chiffrement est utilisé.\n" +"Configuration : keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Authentifie les paquets avec HMAC en utilisant l'algorithme sur le résumé du " +"message. Utilise SHA1 par défaut.\n" +"Configuration : auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Chiffrement :" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Authentification HMAC :" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Sécurité" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Correspondance du sujet :" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Connecter uniquement les serveurs dont le certificat correspond au sujet " +"donné.\n" +"Exemple : /CN=vpn.monentreprise.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"N'accepte que les connexions à partir un hôte ayant un nom X509 ou avec un " +"nom commun égal à celui spécifié.\n" +"Configuration : tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Vérifier les conditions d'utilisation du certificat distant" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Requérir que la certificat distant soit signé pour un usage en tant que clé " +"ou clé étendu suivant les règles de la RFC 3280 sur TLS." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "Type du certificat TLS distant :" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Requérir que la certificat distant soit signé pour un usage en tant que clé " +"ou clé étendu suivant les règles de la RFC 3280 sur TLS.\n" +"Configuration : remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Utiliser une authentification TLS supplémentaire" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Ajouter une couche supplémentaire d'authentification HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Direction de la clé :" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Ajoute une couche supplémentaire d'authentification HMAC au-dessus du canal " +"de contrôle TLS pour protéger des attaques DoS.\n" +"Configuration : tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Paramètre de direction pour le mode de clé statique.\n" +"Si une direction de clé est utilisée, elle doit être l'opposé de celle " +"utilisée sur le pair VPN. Par exemple, si le pair utilise « 1 », cette " +"connexion doit être « 0 ». Si vous n'êtes pas certain de la valeur à " +"utiliser, contactez votre administrateur système.\n" +"Configuration : tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "_Fichier de clé :" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Authentification TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Type de serveur mandataire : HTTP ou Socks.\n" +"Configuration : http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "_Type de serveur mandataire :" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Sélectionnez cette option si votre organisation exige l'utilisation d'un " +"serveur mandataire (proxy) pour accéder à Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "_Adresse du serveur :" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Se connecte à un hôte distant via un serveur mandataire avec cette adresse.\n" +"Configuration : http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "_Port :" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Se connecte à un hôte distant via un serveur mandataire par ce port.\n" +"Configuration : http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Réessayer indéfiniment si des erreurs surviennent" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Réessaye indéfiniment en cas d'erreurs du serveur mandataire. Cela simule " +"une réinitialisation SIGUSR1.\n" +"Configuration : http-proxy-retry ou socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Nom d'utilisateur du serveur mandataire :" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Mot de passe du serveur mandataire :" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Nom d'utilisateur du serveur mandataire HTTP/Socks à donner quand OpenVPN le " +"demande." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"Mot de passe du serveur mandataire HTTP/Socks à donner quand OpenVPN le " +"demande." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Afficher le mot de passe" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Serveurs mandataires" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "adresse « %s » non valide" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "propriété nombre entier « %s » non valide ou hors limites [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "propriété booléenne « %s » non valide (ni oui, ni non)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "propriété « %s » de type « %s » non gérée" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "propriété « %s » non valide ou non prise en charge" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Pas d'options de configuration VPN." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Un nom d'utilisateur est requis." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Un mot de passe est requis." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Un nom d'utilisateur et un mot de passe sont requis." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Le mot de passe de la clé privée est requis." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "Un nom d'utilisateur pour le mandataire HTTP est requis." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "Un mot de passe pour le mandataire HTTP est requis." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" +"Un nom d'utilisateur et un mot de passe pour le mandataire HTTP sont requis." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Impossible de trouver le binaire openvpn." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Authentification HMAC invalide." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Type de connexion invalide." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Numéro de port « %s » invalide." + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Type de protocole « %s » invalide." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Type de serveur mandataire « %s » invalide." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Taille de clé « %s » invalide." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Secondes de renégociation « %s » non valides." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Taille de MTU TUN « %s » non valide." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Taille de fragment « %s » non valide." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Adresse IP locale manquante pour le mode de clé statique." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Adresse IP distante manquante pour le mode de clé statique." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Type de connexion « %s » inconnu." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Impossible de traiter la requête car les paramètres de connexion VPN ne sont " +"pas valides." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Impossible de traiter la requête car le le type de connexion openvpn est " +"invalide." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Authentification en cours non prise en charge." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Ne pas quitter lorsque la connexion VPN se termine" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Activer le débogage verbeux (peut afficher des mots de passe)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service fournit la fonctionnalité OpenVPN intégrée à " +"NetworkManager." + +#~ msgid "Use a TA_P device" +#~ msgstr "Utiliser un périphérique TA_P" + +#~ msgid "_Password:" +#~ msgstr "_Mot de passe :" + +#~ msgid "_Secondary Password:" +#~ msgstr "Mot de passe _secondaire :" + +#~ msgid "Sh_ow passwords" +#~ msgstr "Afficher les m_ots de passe" + +#~ msgid "No VPN secrets!" +#~ msgstr "Pas d'infos secrètes VPN !" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "Impossible de traiter la requête car aucun nom d'utilisateur n'a été " +#~ "indiqué." diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..3832877 --- /dev/null +++ b/po/gl.po @@ -0,0 +1,955 @@ +# Galician translation of NetworkManager Applet +# Copyright (C) -2008, The GNOME Foundation +# This file is distributed under the same license as the NetworkManager Applet package. +# Ignacio Casal Quinteiro , 2007, 2008. +# Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. +# Francisco Diéguez , 2010. +# Fran Diéguez , 2011. +# Xosé M. Lamas , 2011. +# Fran Dieguez , 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: gl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2013-09-23 03:06+0200\n" +"Last-Translator: Fran Dieguez \n" +"Language-Team: gnome-l10n-gl@gnome.org\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autenticar na VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Contrasinal:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Contrasinal do certificado:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autenticar VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_Contrasinal do certificado:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Precisa autenticarse para acceder á rede privada virtual (VPN) '%s'." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Seleccione o seu certificado persoal…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Seleccione a súa chave privada…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Gardado" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Preguntar Sempre" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Non requirido" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Seleccionar un certificado de Autoridade de Certificación…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Seleccionar unha chave estática OpenVPN…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Ningún" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificados PEM ou PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificados PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Chaves estáticas OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Predeterminado" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Servidor" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Cliente" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Non requirido" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Compatíbel co servidor OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certificados (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Contrasinal" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Contrasinal con certificados (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Chave estática" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Non foi posíbel atopar o binario de openvpn." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Non hai opcións de configuración da VPN." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Xeral" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Pasarela:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +#, fuzzy +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Nome ou enderezo IP do equipo remoto. Pode especificar varios elementos por " +"redundancia (use comas para separar as entradas).\n" +"opción: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autenticación" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Mostrar os contrasinais" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Contrasinal para a chave privada" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Contrasinal de chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Chave privada do par local, en formato .pem.\n" +"opción: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Ficheiro de autoridade certificadora (CA) en formato .pem.\n" +"opción: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificado CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificado de usuario:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Certificado firmado do par local, en formato .pem (firmado polo certificado " +"dunha CA)..\n" +"opción: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Contrasinal pasada a OpenVPN cando se solicita.\n" +"opción: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nome de usuario:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nome de usuario pasado a OpenVPN cando se solicita.\n" +"opción: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Enderezo IP do cliente VPN.\n" +"opción: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Enderezo IP remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Enderezo IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Enderezo IP do servidor VPN.\n" +"opción: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Enderezo da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Chave estática:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Ficheiro predeterminado para o modo de cifrado de chave estática.\n" +"opción: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Enderezo para o modo de cifrado de chave estática (non TLS).opción: " +"Se se utiliza a dirección da chave, esta debe ser oposta á da utilizada " +"no peer VPN. Por exemplo, se o peer usa '1', esta conexión debe utilizar " +"'0'. Se non está seguro de que valor utilizar, contacte co seu administrador " +"do sistema.\n" +"static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Seleccionar un modo de autenticación." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Opcións a_vanzadas..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Opcións avanzadas de OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Usar un p_orto personalizado de pasarela:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"O número de porto TCP/UDP para os pares locais \n" +"opción: porto" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Usar un intervalo de _renegociación personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegociar achave do canle de datos despois do número de segundos " +"espcificado \n" +"opción: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Usar a compresión de datos L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Usar compresión LZO rápida \n" +"opción: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Usar unha conexión _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Usar TCP para comunicarse co equipo remoto \n" +"opción: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +#, fuzzy +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Usar un dispositivo TAP virtual de rede no lugar de TUN.\n" +"opción: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Usar unha Unidade de Transmisión Máxima de _túnel personalizada (MTU)" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Tomar a MTU do dispositivo TUN para que sexa o valor especificado e obter o " +"MTU da ligazón deste valor \n" +"opción: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Usar un tamaño de _fragmento UDP personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Activar a fragmentación interna de datos con este tamaño máximo.\n" +"opción: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Restrinxir o tamaño do segmento máximo do túnel TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restrinxir túnel TCP.\n" +"opción: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Aleatori_zar os equipos remotos" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Aleatorizar a orde da lista de portas de enlace (remotas) como un tipo de " +"medida de balanceo de carga básica.\n" +"opción: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Xeral" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Cifrar paquetes cun algoritmo de cifrado. O predeterminado é BF-CBC " +"(Blowfish in Cipher Block Chaining mode).\n" +"opción: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Usar _tamaño de chave de cifrado personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Estabelecer o tamaño da chave de cifrado a un valor personalizado. Se non se " +"especifica usarase o tamaño especificado polo cifrador.\n" +"\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autenticar paquetes con HMAC usando un algoritmo de resumo de mensaxe. O " +"predeterminado é SHA1.\n" +"opción: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Cifrado:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Autenticación HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Seguranza" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Coincidir o asunto:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Só conectar cos servidores cuxos certificados coincidan co asunto " +"fornecido.\n" +"Exemplo: /CN=avpnda.empresa.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Só aceptar conexións dun equipo cun nome X509 ou un nome común igual ao " +"especificado.\n" +"opción: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Comprobar uso da sinatura do certificado do par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Require que o certificado do par fora asinado con un uso de chave explícito " +"e uso de chave estentido baseado nas regras de TLS RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "_Tipo de certificado de par remoto TLS:" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Require que o certificado do par fora asinado con un uso de chave explícito " +"e uso de chave estentido baseado nas regras de TLS RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Usar adicionalmente a autenticación TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Engadir unha capa de autenticación HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Dirección da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Enagdir unha capa de autenticación HMAC adicional enriba do canle TLS de " +"control para protexerse de ataques de DoS.\n" +"opción: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parámetro de dirección para o modo de chave estática.\n" +"Se se utiliza a dirección da chave, esta debe ser oposta á da utilizada " +"no peer VPN. Por exemplo, se o peer usa '1', esta conexión debe utilizar " +"'0'. Se non está seguro de que valor utilizar, contacte co seu administrador " +"do sistema.\n" +"opción: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Ficheiro de chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Autenticación TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipo de proxy: HTTP ou Socks..\n" +"opción: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Tipo de proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Seleccione esta opción se a súa organización lle obriga a usar un " +"servidor proxy para acceder a Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Enderezo do servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conectar a un equipo remoto a través dun proxy con este enderezo.\n" +"opción: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Porto:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conectar a un equipo remoto a través dun proxy con este porto.\n" +"opción: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Reintentar indefinidamente cando se produzan erros" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Reintentar de form indefinida ante erros do proxy. Simula un reinicio " +"SIGUSR1.\n" +"opción: http-proxy-retry ou socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Usuario do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Contrasinal do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Nome de usuario do proxy HTTP/Socks pasado a OpenVPN cando se solicita." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Contrasinal do proxy HTTP/Socks pasada a OpenVPN cando se solicita." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Mostrar contrasinal" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Proxies" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "enderezo «%s» non válido" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "propiedade enteira «%s» non válida ou fóra de rango [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "propiedade booleana «%s» inválida (non «yes» ou «non»)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "propiedade «%s» do tipo %s non se xestiona" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "a propiedade «%s» non é válida ou non se admite" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Non hai opcións de configuración da VPN." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Requírese un nome de usuario." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Requirese un contrasinal." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Requírese un nome de usuario e un contrasinal." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Requírese un contrasinal de chave privada." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "Requírese un nome de usuario de proxy HTTP." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "Requírese un contrasinal de proxy HTTP." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "Requírese un nome de usuario e un contrasinal para o proxy HTTP." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Non foi posíbel atopar o binario de openvpn." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Autenticación HMAC non válida." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Tipo de conexión non válido." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Número de porto non válido «%s»." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Tipo de proxy «%s» non válido." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Tipo de proxy «%s» non válido." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Tamaño do chave «%s» non válido." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Segundos de renegociación «%s» non válidos." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Tamaño MTU do TUN «%s» non válido." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Tamaño do fragmento «%s» non válido." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Falta o enderezo IP local requirido polo modo de chave estática." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Falta o enderezo IP remoto requirido polo modo de chave estático." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Tipo de conexión «%s» non válido." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Non foi posíbel procesar a solicitude debido a que as configuracións da " +"conexión VPN non son válidos." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Non foi posíbel procesar a solicitude debido a que o tipo de conexión " +"openvpn non é válido." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Autenticación pendente sen xestionar." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Non saír cando unha conexión VPN remata." + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Activar o modo detallado de rexistro de depuración (pode mostrar " +"contrasinais en claro)." + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service fornece a capacidade de integrar OpenVPN con " +"NetworkManager." + +#~ msgid "Use a TA_P device" +#~ msgstr "Usar un dispositivo TA_P" + +#~ msgid "_Password:" +#~ msgstr "_Contrasinal:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Contrasinal _secundario:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "M_ostrar os contrasinais" + +#~ msgid "No VPN secrets!" +#~ msgstr "Non hai segredos de VPN!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "Non foi posíbel procesar a solicitude debido a que non se forneceu un " +#~ "nome de usuario." + +#~ msgid "" +#~ "Remote host name or IP address.\n" +#~ "config: remote" +#~ msgstr "" +#~ "Nome do equipo remoto ou enderezo IP.\n" +#~ "opción: remote" + +#~ msgid "_Username:" +#~ msgstr "Nome de _usuario:" + +#~ msgid "_Domain:" +#~ msgstr "_Dominio:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Conectarse _anonimamente" + +#~ msgid "Connect as _user:" +#~ msgstr "Conectarse como _usuario:" + +#~ msgid "_Remember password for this session" +#~ msgstr "Lemb_rar o contrasinal para esta sesión" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Gardar o contrasinal no anel de chaves" diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..60a51a0 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,837 @@ +# translation of gu.po to Gujarati +# Gujarati translation of network-manager-openvpn. +# Copyright (C) 2009 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Sweta Kothari , 2009, 2011. +msgid "" +msgstr "" +"Project-Id-Version: gu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-02-18 11:13+0530\n" +"Last-Translator: Sweta Kothari \n" +"Language-Team: Gujarati\n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "સત્તાધિકરણ VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "પાસવર્ડ (_P):" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "પ્રમાણપત્ર પાસવર્ડ:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "સત્તાધિકરણ VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "પ્રમાણપત્ર પાસવર્ડ (_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "વર્ચ્યુઅલ ખાનગી નેટવર્ક '%s' ને દાખલ કરવા માટે તમારે સત્તાધિકરણની જરૂર છે." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "તમારા વ્યક્તિગત પ્રમાણપત્રને પસંદ કરો..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "તમારી ખાનગી કીને પસંદ કરો..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "જરૂરી નથી" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "સત્તા પ્રમાણપત્રને પસંદ કરો..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN સ્થિર કીને પસંદ કરો..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "કંઇ નહિં" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM અથવા PKCS#12 પ્રમાણપત્રો (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM પ્રમાણપત્રો (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN સ્ટેટીક કીઓ (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "મૂળભૂત" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "જરૂરી નથી" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN સર્વર સાથે સુસંગત." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "પ્રમાણપત્રો (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "પાસવર્ડ" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "પ્રમાણપત્રો સાથે પાસવર્ડ (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "સ્ટેટીક કી" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "પાસવર્ડ (_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "તમારી ખાનગી કીને પસંદ કરો..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "પ્રમાણપત્ર પાસવર્ડ:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "પ્રમાણપત્ર પાસવર્ડ:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "પ્રમાણપત્ર પાસવર્ડ:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "વપરાશકર્તા નામ (_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "સ્ટેટીક કી" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "સત્તાધિકરણ VPN" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "વપરાશકર્તા નામ (_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "પાસવર્ડ (_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "પાસવર્ડ (_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "ગૌણ પાસવર્ડ (_S):" + +#~ msgid "_Domain:" +#~ msgstr "ડોમેઇન (_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "અવ્યસ્થિત રીતે જોડાવો (_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "વપરાશકર્તા તરીકે જોડાવો (_u)" + +#~ msgid "_Remember password for this session" +#~ msgstr "આ સત્ર માટે પાસવર્ડને યાદ રાખો (_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "કિરીંગ માં પાસવર્ડને સંગ્રહો (_S)" diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..5dcf8f7 --- /dev/null +++ b/po/he.po @@ -0,0 +1,838 @@ +# Hebrew translations for PACKAGE package. +# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Yaron Shahrabani , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-01-23 12:50+0200\n" +"Last-Translator: Yaron Shahrabani \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Hebrew\n" +"X-Poedit-Country: ISRAEL\n" +"X-Poedit-SourceCharset: UTF-8\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "אימות מול ה־VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_ססמה:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "ססמת האישור:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "אימות מול ה־VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "ססמת ה_אישור:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "עליך להתאמת כדי לגשת לרשת הווירטואלית הפרטית '%s'." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "נא לבחור את האישור הפרטי שלך..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "נא לבחור את המפתח הפרטי שלך..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "לא נדרש" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "נא לבחור אישור של רשות אישורים..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "נא לבחור במפתח OpenVPN סטטי..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "ללא" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "אישורי PEM או PKCS#12‏ (‎*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "אישורי PEM‏ (‎*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "מפתחות OpenVPN סטטיים (‎*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "בררת מחדל" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "לא נדרש" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "תואם לשרת ה־OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "אישורים (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "ססמה" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "ססמה עם אישורים (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "מפתח סטטי" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_ססמה:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "נא לבחור את המפתח הפרטי שלך..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "ססמת האישור:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "ססמת האישור:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "ססמת האישור:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "ש_ם משתמש:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "מפתח סטטי" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "אימות מול ה־VPN" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ש_ם משתמש:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_ססמה:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_ססמה:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "ססמה מ_שנית:" + +#~ msgid "_Domain:" +#~ msgstr "מ_תחם:" + +#~ msgid "Connect _anonymously" +#~ msgstr "התחברות _אלמונית" + +#~ msgid "Connect as _user:" +#~ msgstr "התחברות בתו_ר המשתמש:" + +#~ msgid "_Remember password for this session" +#~ msgstr "שמירת הססמה להפ_עלה זו" + +#~ msgid "_Save password in keyring" +#~ msgstr "שמירת הססמה ב_קבוצת הססמאות" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..e99e762 --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1506 @@ +# Hungarian translation for network-manager-openvpn. +# Copyright (C) 2006-2016 The Free Software Foundation, Inc. +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Gabor Halaszvari , 2006. +# Gabor Kelemen , 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016, 2017. +# Mate Ory , 2011. +# Balázs Úr , 2014, 2015, 2016. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-28 15:51+0000\n" +"PO-Revision-Date: 2017-09-10 15:09+0200\n" +"Last-Translator: Meskó Balázs \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN kliens" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Kliens az OpenVPN virtuális magánhálózatokhoz" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Az OpenVPN virtuális magánhálózati kapcsolatok beállításának támogatása." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "Az OpenVPN egy népszerű és rugalmas, szabad szoftveres VPN megoldás." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "A Hálózatkezelő fejlesztői" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "VPN-hitelesítés: %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Jelszó:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Tanúsítvány jelszava:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "HTTP proxy jelszó:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "VPN azonosítás" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Tanúsítvány _jelszava:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "_HTTP proxy jelszó:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Hitelesítenie kell magát a(z) „%s” virtuális magánhálózat eléréséhez." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Válassza ki az OpenVPN statikus kulcsát…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Nincs" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN statikus kulcsok (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Alapértelmezett" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Ne ellenőrizze a tanúsítvány személyazonosságát" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Pontosan ellenőrizze a teljes alanyt" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Pontosan ellenőrizze a nevet" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Ellenőrizze a nevet prefix szerint" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Részlegesen ellenőrizze az alanyt (örökölt mód, határozottan nem ajánlott)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Kiszolgáló" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Kliens" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Nem szükséges" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(automatikus)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "a(z) %s beállítás %u és %u közti számú argumentumot vár" +msgstr[1] "a(z) %s beállítás %u és %u közti számú argumentumot vár" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "a(z) %s beállítás nem vár argumentumot" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "a(z) %s beállítás pontosan egy argumentumot vár" +msgstr[1] "a(z) %s beállítás pontosan %u argumentumot vár" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "a(z) „%2$s” %1$s argumentuma nem lehet üres" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "a(z) „%s” argumentuma nem lehet üres" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "a(z) „%2$s” %1$s argumentuma UTF-8 kódolású kell legyen" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "a(z) „%s” argumentuma UTF-8 kódolású kell legyen" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "a(z) „%2$s” %1$u. argumentuma érvénytelen, a várttal szemben nem szám" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "a(z) %1$u. „%2$s” argumentum nem támogatott ehhez: „%3$s”" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"a(z) „%2$s” %1$u. argumentuma nem támogatott, FQDN-nek néz ki, de csak IPv4 " +"címek támogatottak" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "" +"a(z) „%2$s” %1$u. argumentuma érvénytelen, a várttal szemben nem IPv4 cím" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "a(z) „%2$s” %1$u. kulcsirány argumentuma érvénytelen" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "a(z) „%2$s” %1$u. argumentuma érvénytelen" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "befejezetlen %s a következő pozícióban: %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "dupla idézőjel" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "egyszeres idézőjel" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "záró escape-elő visszaper a következő pozícióban: %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "nem olvasható a HTTP proxy hitelesítési fájlja" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"nem olvasható a felhasználónév/jelszó a HTTP proxy hitelesítési fájljából" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"a felhasználónév/jelszó a HTTP proxy hitelesítési fájljából UTF-8 kódolású " +"kell legyen" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s” nem egy könyvtár" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "nem hozható létre „%s” könyvtár" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "nem írható <%s> blob a(z) %ld. sorból a fájlba (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "nem írható <%s> blob a(z) %ld. sorból a fájlba (%s)" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "nem támogatott mtu-disc argumentum" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "érvénytelen kapcsoló" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nem támogatott comp-lzo argumentum" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "a távoli nem tartalmazhat szóközt" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "a távoli nem tartalmazhat vesszőt" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "a távoli protokolltípust vár, mint az „udp” vagy a „tcp”" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "érvénytelen verify-x509-name típus" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "nem támogatott blob/xml elem" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "befejezetlen blob elem <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "konfigurációs hiba: %s (%ld. sor)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "ismeretlen vagy nem támogatott beállítás" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Az importálandó fájl nem volt érvényes OpenVPN kliensbeállítás" + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Az importálandó fájl nem volt érvényes OpenVPN beállítás (nincs távoli)" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "hiányzó útvonal argumentum" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "a kapcsolat nem egy érvényes OpenVPN kapcsolat" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "a kapcsolat nem volt teljes (hiányzó átjáró)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "a fájl írása meghiúsult: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibilis az OpenVPN kiszolgálóval." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "ismeretlen OpenVPN fájlkiterjesztés" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Tanúsítványok (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Jelszó" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Jelszó tanúsítványokkal (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Statikus kulcs" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "nem sikerült létrehozni az openvpn objektumot" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "nem sikerült betölteni az UI felületi elemet" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "a(z) „%s” objektumosztálynak nincs „%s” nevű tulajdonsága" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "„%2$s” osztály „%1$s” tulajdonsága nem írható" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"„%2$s” objektum „%1$s” konstuktortulajdonsága nem állítható be a létrehozás " +"után" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "„%s::%s” nem érvényes tulajdonságnév, „%s” nem egy GObject résztípus" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"nem állítható be „%2$s” típusú „%1$s” tulajdonság „%3$s” típusú értékre" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"a(z) „%2$s” típusú „%1$s” érték érvénytelen vagy kívül esik a tartományon " +"„%4$s” típusú „%3$s” tulajdonsághoz" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "hiányzó bővítményfájl: „%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "nem tölthető be a szerkesztőbővítmény: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "nem tölthető be a(z) %s factory a bővítményből: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "ismeretlen hiba a szerkesztőpéldány létrehozásakor" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "érvénytelen határoló karakter: „%c”" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "érvénytelen nem utf-8 karakter" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "üres gépnév" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "érvénytelen port" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "érvénytelen protokoll" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "érvénytelen cím: „%s”" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "" +"érvénytelen, vagy a(z) %2$d…%3$d tartományon kívüli egész érték: „%1$s”" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "érvénytelen logikai érték: „%s” (érvényes értékek: yes, no)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "kezeletlen %2$s típusú érték: „%1$s”" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "érvénytelen vagy nem támogatott érték: „%s”" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Nincsenek VPN-beállítások." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Felhasználónév szükséges." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Jelszó szükséges." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Felhasználónév és jelszó szükséges." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Személyes kulcs jelszava szükséges." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "HTTP proxy felhasználónév szükséges." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "HTTP proxy jelszó szükséges." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "HTTP proxy felhasználónév és jelszó szükséges." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"A kérés feldolgozása sikertelen, mivel a VPN-kapcsolat beállításai " +"érvénytelenek." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Érvénytelen kapcsolattípus." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Nem található az openvpn program." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Érvénytelen HMAC azonosítás." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Érvénytelen portszám: „%s”." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Érvénytelen prototípus: „%s”." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Érvénytelen proxytípus: „%s”." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Érvénytelen ping hossz: „%s”." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Érvénytelen ping-exit hossz: „%s”." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Érvénytelen ping-restart hossz: „%s”." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Érvénytelen max-routes argumentum: „%s”." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Érvénytelen kulcsméret: „%s”." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Érvénytelen beállítás a tls-remote és verify-x509-name használaávalt." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Érvénytelen verify-x509-name." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Érvénytelen reneg másodperc érték: „%s”." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Érvénytelen TUN MTU érték: „%s”." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Érvénytelen töredékméret: „%s”." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Ismeretlen kapcsolattípus: „%s”." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "„%s” felhasználó nem található, ellenőrizze az NM_OPENVPN_USER-t." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "„%s” csoport nem található, ellenőrizze az NM_OPENVPN_GROUP-ot." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Nem kezelt függő hitelesítés." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Ne lépjen ki, ha a VPN kapcsolat megszakad" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Részletes hibakeresési naplózás engedélyezése (jelszavak is a naplóba " +"kerülhetnek)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "A példányhoz használandó D-Bus név" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"Az nm-openvpn-service integrált OpenVPN-támogatást nyújt a Hálózatkezelőhöz." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-Auth" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-Crypt" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Talán" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Igen" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Általános" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "Á_tjáró:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Távoli átjárók opcionálisan port és protokoll megadással (például: ovpn.corp." +"com:1234:tcp). A redundancia érdekében több gépet is meghathat (vesszővel " +"vagy szóközzel elválasztva).\n" +"beállítás: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Hitelesítés" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Felhasználónév:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Kérés esetén az OpenVPN-nek átadott jelszó.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Kérés esetén az OpenVPN-nek átadott felhasználónév.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Távoli IP-cím:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Helyi IP-cím:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Kulcsirány:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Statikus kulcs:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Előzetesen megosztott fájl a statikus kulcstitkosítási (nem TLS) módhoz.\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"A távoli VPN végpont IP-címe.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"A helyi VPN végpont IP-címe.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Irány a statikus kulcstitkosítási (nem TLS) módhoz.\n" +"A kulcsirány használatakor a VPN partneren használttal ellentétesnek kell " +"lennie. Ha például a partner 1-et használ, akkor a kapcsolatnak 0-t kell. Ha " +"nem biztos benne, hogy melyik értéket kell használnia, keresse meg a " +"rendszergazdát.\n" +"config: static [irány]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Típus:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Válasszon egy hitelesítési módot." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "S_peciális…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN speciális beállításai" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Egyéni átjáró_port használata:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Partner TCP/UDP portszáma. (Alapértelmezett érték, ha nincs port az " +"átjáróhoz.)\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "_Egyéni újratárgyalási időköz használata:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Adatcsatorna kulcsának újratárgyalása a megadott számú másodperc után.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "L_ZO tömörítés használata" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Gyors LZO tömörítés használata.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Válasza ki az LZO adattömörítés módját.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "T_CP kapcsolat használata" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"TCP használata a távoli géppel való kommunikációra.\n" +"(Ez az alapértelmezett beállítás csak akkor kerül felhasználásra, ha nincs " +"protokoll megadva az átjáróhoz.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Virtuális _eszköztípus beállítása:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Virtuális eszköztípus és név explicit beállítása (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Virtuális eszköztípus explicit beállítása (TUN/TAP).\n" +"beállítás: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " és _név:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Egyéni név használata a TUN/TAP virtuális eszközhöz (az alapértelmezett " +"„tun” vagy „tap” helyett).\n" +"beállítás: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Egyéni _maximális átviteli egység (MTU) használata az alagúthoz:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"A TUN eszköz MTU-jának beállítása a megadott értékre, és a kapcsolat MTU-" +"jának származtatása ebből.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Egyéni _UDP-darab méret használata:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Belső datagramtördelés engedélyezése ezzel a maximális értékkel.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "T_CP alagút maximális szegmensméretének (MSS) korlátozása" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Alagút TCP MSS korlátozása.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "Távoli gépek _véletlenszerűsítése" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Az átjárók (távoli) listájának véletlenszerűsítése egyszerű " +"terheléskiegyenlítési intézkedésként.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "IPv6 tun kapcsolat" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"IPv6 forgalom továbbítására képes tun kapcsolat létrehozása\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Ping _leállítása vagy újraindítása:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Leállítás vagy újraindítás, ha eltelt n másodperc ping vagy más csomag " +"fogadása óta a távoli féltől.\n" +"beállítás: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Adja meg a pin_g időközét:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Távoli pingelése a TCP/UDP vezérlőcsatornán, ha legalább n másodpercig nem " +"került csomag küldésre.\n" +"beállítás: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "_Hitelesített csomagok elfogadása bármely címről (float)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"A távoli partner megváltoztathatja az IP-címét és/vagy portszámát, például " +"DHCP miatt (ez az alapértelmezett, ha a --remote nincs megadva). A --float a " +"--remote kapcsolóval együtt lehetővé teszi az OpenVPN munkamenetnek, hogy " +"kapcsolódjon egy ismert című partnerhez, ha azonban egy új címről érkeznek " +"csomagok, és megfelelnek a hitelesítési teszteken, az új cím átveszi a " +"munkamenet irányítását. Ez akkor hasznos, ha dinamikus című partnerhez " +"kapcsolódik, például betárcsázós kapcsolaton elérhető vagy DHCP klienst " +"használó felhasználóhoz.\n" +"\n" +"Lényegében a --float megadja az OpenVPN-nek, hogy fogadja el a hitelesített " +"csomagokat tetszőleges címről, ne csak a --remote kapcsolóval megadott " +"címről.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Útvonalak legnagyobb számának megadása:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Adja meg a kiszolgáló által megadható útvonalak legnagyobb számát.\n" +"beállítás: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Csomagok titkosítása ezzel az algoritmussal. Az alapértelmezett a BF-CBC " +"(Blowfish Cipher Block Chaining módban).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Egyéni _méretű titkosítókulcs használata:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"A titkosítókulcs méretének egyéni értékre állítása. Ha nincs megadva, a " +"titkosítóra jellemző méretre áll be.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Csomagok hitelesítése HMAC-cal ezen üzenetkivonatolási algoritmus " +"használatával. Az alapértelmezés az SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "_Rejtjelzés:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_HMAC hitelesítés:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Biztonság" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "_Alany egyezik:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Alany vagy ismert név a kiszolgálótanúsítvány információk ellenőrzéséhez.\n" +"\n" +"beállítás: verify-x509-name alany-vagy-név [mód]\n" +"beállítás (örökölt mód): tls-remote alany-vagy-név" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Kiszolgáló_tanúsítvány ellenőrzése:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"A kiszolgálótanúsítvány személyazonosságának ellenőrzése.\n" +"\n" +"Ha engedélyezett, akkor a kapcsolat csak akkor lesz sikeres, ha a " +"kiszolgálótanúsítvány egyezik néhány várt tulajdonsággal.\n" +"Az egyezés vonatkozhat a teljes tanúsítvány alanyára (minden mezőre),\n" +"vagy csak az ismert névre (CN mező).\n" +"\n" +"Az örökölt tls-remote beállítás elavult, és eltávolításra került\n" +"az OpenVPN 2.4 és újabb verzióiból. Ne használja többé.\n" +"\n" +"beállítás: verify-x509-name alany-vagy-név [mód]\n" +"beállítás (örökölt mód): tls-remote alany-vagy-név" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Partner (kiszolgáló) tanúsítványhasználati aláírásának ellenőrzése" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"A partnertanúsítvány explicit kulcshasználattal és az RFC3280 TLS szabályai " +"alapján bővített kulcshasználattal való aláírásának megkövetelése." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "_Távoli partner tanúsítványának TLS típusa:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"A partnertanúsítvány explicit kulcshasználattal és az RFC3280 TLS szabályai " +"alapján bővített kulcshasználattal való aláírásának megkövetelése.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "" +"_Partner (kiszolgáló) tanúsítvány nsCertType meghatározásának ellenőrzése" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"A partnertanúsítvány explicit nsCertType meghatározással való aláírásának " +"megkövetelése." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "_Távoli partner tanúsítványának nsCert meghatározása:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"A partnertanúsítvány explicit nsCertType meghatározással való aláírásának " +"megkövetelése.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "_Kulcsirány:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Újabb HMAC hitelesítési réteg hozzáadása a TLS vezérlőcsatornához a DoS " +"támadások elleni védekezéshez.\n" +"config: tls-auth [irány]" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Irányparaméter a statikus kulcs módhoz.\n" +"A kulcsirány használatakor a VPN partneren használttal ellentétesnek kell " +"lennie. Ha például a partner 1-et használ, akkor a kapcsolatnak 0-t kell. Ha " +"nem biztos benne, hogy melyik értéket kell használnia, keresse meg a " +"rendszergazdát.\n" +"config: tls-auth [irány]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "Kulcs_fájl:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Mód" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "További titkosítási réteg vagy HMAC hitelesítés hozzáadása." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Additional TLS authentication or encryption" +msgstr "További TLS hitelesítés vagy titkosítás" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "TLS hitelesítés" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxy típusa: HTTP vagy Socks.\n" +"config: http-proxy vagy socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Proxy _típus:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Válassza ezt a lehetőséget, ha a szervezet proxy kiszolgáló használatát " +"követeli meg az internet eléréséhez." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "_Kiszolgáló címe:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Csatlakozás a távoli géphez ezen a proxy címen keresztül.\n" +"config: http-proxy vagy socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Csatlakozás a távoli géphez ezen a proxy porton keresztül.\n" +"config: http-proxy vagy socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "Hiba esetén _végtelen számú újrapróbálkozás" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Proxy hiba esetén végtelen számú újrapróbálkozás. SIGUSR1 jelzést szimulál.\n" +"config: http-proxy-retry vagy socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Proxy _felhasználói név:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "_Proxy jelszó:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "Kérés esetén az OpenVPN-nek átadott HTTP/Socks proxy felhasználónév." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Kérés esetén az OpenVPN-nek átadott HTTP/Socks proxy jelszó." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "_Jelszó megjelenítése" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Proxyk" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Útvonal mtu felfedezés" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Egyéb" + +#~ msgid "Choose your personal certificate…" +#~ msgstr "Válassza ki a személyes tanúsítványát…" + +#~ msgid "Choose your private key…" +#~ msgstr "Válassza ki a személyes kulcsát…" + +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Válasszon hitelesítésszolgáltatói tanúsítványt…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "PEM vagy PKCS#12 tanúsítványok (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "PEM tanúsítványok (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Hiányzó helyi IP-cím a statikus kulcsos módhoz." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Hiányzó távoli IP-cím a statikus kulcsos módhoz." + +#~ msgid "_Show passwords" +#~ msgstr "_Jelszavak megjelenítése" + +#~ msgid "Password for private key" +#~ msgstr "A személyes kulcs jelszava" + +#~ msgid "Private Key Password:" +#~ msgstr "Személyes kulcs jelszava:" + +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Helyi partner kulcsa .pem formátumban.\n" +#~ "config: key" + +#~ msgid "Private Key:" +#~ msgstr "Személyes kulcs:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Hitelesítésszolgáltató (CA) fájl .pem formátumban.\n" +#~ "config: ca" + +#~ msgid "CA Certificate:" +#~ msgstr "CA tanúsítvány:" + +#~ msgid "User Certificate:" +#~ msgstr "Felhasználói tanúsítvány:" + +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Helyi partner aláírt tanúsítványa .pem formátumban (a CA tanúsítvány " +#~ "hitelesítésszolgáltatója által aláírva).\n" +#~ "config: cert" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "nem írható <'%s> blob a(z) %ld. sorból ebbe a fájlba: „%s”" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "A kérés feldolgozása sikertelen, mivel az OpenVPN-kapcsolat típusa " +#~ "érvénytelen." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Általános" + +#~ msgid "Authentication" +#~ msgstr "Hitelesítés" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Csak olyan kiszolgálókhoz kapcsolódjon, amelyek tanúsítványa megfelel " +#~ "a megadott alanynak.\n" +#~ "Például: /CN=myvpn.cég.hu" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Kapcsolat elfogadása csak a megadottal egyező X509 névvel vagy közönséges " +#~ "névvel.\n" +#~ "config: tls-remote" + +#~ msgid "could not open file for writing" +#~ msgstr "a fájl nem nyitható meg írásra" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "%s beállítás pontosan %u argumentumot vár" + +#~ msgid "Saved" +#~ msgstr "Mentett" + +#~ msgid "Always Ask" +#~ msgstr "Mindig kérdezzen" + +#~ msgid "Not Required" +#~ msgstr "Nem szükséges" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "VPN kapcsolatkezelő (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "VPN kapcsolatok hozzáadása, szerkesztése és eltávolítása" + +#~ msgid "Use a TA_P device" +#~ msgstr "TA_P eszköz használata" + +#~ msgid "_Password:" +#~ msgstr "_Jelszó:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Jelszó _még egyszer:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "_Jelszavak megjelenítése" + +#~ msgid "No VPN secrets!" +#~ msgstr "Nincs VPN-titok!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "A kérés feldolgozása sikertelen, mivel nem adott meg felhasználónevet." + +#~ msgid "_Username:" +#~ msgstr "_Felhasználói név:" + +#~ msgid "_Domain:" +#~ msgstr "_Tartomány:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Csatlakozás _névtelenül" + +#~ msgid "Connect as _user:" +#~ msgstr "Csatlakozás _mint:" + +#~ msgid "_Remember password for this session" +#~ msgstr "Je_lszó megjegyzése a munkamenetre" + +#~ msgid "_Save password in keyring" +#~ msgstr "Jelszó mentése a _kulcstartóra" diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..048b439 --- /dev/null +++ b/po/id.po @@ -0,0 +1,1341 @@ +# Indonesian translation of network-manager-openvpn +# # Copyright (C) 2009 THE network-manager-openvpn'S COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# Andika Triwidada , 2009-2013, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-28 15:51+0000\n" +"PO-Revision-Date: 2017-09-01 15:42+0700\n" +"Last-Translator: Andika Triwidada \n" +"Language-Team: GNOME Indonesian Translation Team \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.11\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Klien OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klien untuk virtual private network OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Dukungan untuk menata koneksi virtual private network OpenVPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" +"OpenVPN adalah sebuah solusi VPN perangkat lunak bebas yang populer dan " +"luwes." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Para Pengembang NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Otentikasikan VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Kata Sandi:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Kata sandi sertifikat:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Sandi proksi HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Otentikasikan VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "_Kata sandi sertifikat:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Sandi proksi _HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Anda perlu mengotentikasi untuk mengakses Virtual Private Network \"%s\"." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Pilih kunci statik OpenVPN…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Tak ada" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Kunci Statik OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Baku" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Jangan verifikasi identifikasi sertifikat" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Verifikasikan seluruh subjek secara eksak" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Verifikasikan nama secara eksak" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Verifikasikan nama menurut prefiks" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Verifikasikan subjek secara parsial (mode warisan, sangat tidak dianjurkan)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Klien" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Tak diperlukan" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(otomatis)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "opsi %s mengharapkan antara %u dan %u argumen" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "opsi %s tidak memerlukan argumen" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "opsi %s mengharapkan tepat %u argumen" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argumen %s dari \"%s\" tidak boleh kosong" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argumen dari \"%s\" tidak boleh kosong" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argumen %s dari \"%s\" harus dikodekan dalam UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argumen dari \"%s\" harus dikodekan dalam UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "argumen ke-%u tidak valid untuk \"%s\" dimana diharapkan bilangan" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "argumen ke-%u tidak didukung %s untuk \"%s\"" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"argumen ke-%u tidak didukung untuk \"%s\" yang nampak seperti sebuah FQDN " +"tapi hanya alamat IPv4 yang didukung" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "argumen ke-%u tidak valid untuk \"%s\" dimana diharapkan alamat IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "argumen key-direction ke-%u untuk \"%s\" tidak valid" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "argumen ke-%u tidak valid untuk \"%s\"" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "%s tak diterminasi pada posisi %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "petik ganda" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "petik tunggal" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "backslash peng-escape di akhir pada posisi %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "tak bisa membaca berkas auth proksi HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "tak bisa membaca pengguna/sandi dari berkas auth proksi HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "pengguna/sandi dari berkas auth proksi HTTP mesti terkode UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "\"%s\" bukan direktori" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "tak bisa membuat direktori \"%s\"" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "tak bisa menulis blob <%s> dari baris %ld ke berkas (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "tidak bisa menulis blob <%s> dari baris %ld ke berkas \"%s\"" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "argumen mtu-disc tak didukung" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "opsi tak valid" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "argumen comp-lzo tak didukung" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "remote tak boleh memuat spasi" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "remote tak boleh memuat koma" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "remote mengharapkan tipe protokol seperti \"udp\" atau \"tcp\"" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "tipe verify-x509-name tidak valid" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "elemen blob/xml yang tak didukung" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "elemen blob tak diterminasi <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "galat konfigurasi: %s (baris %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "opsi tak dikenal atau tak didukung" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Berkas yang akan diimpor bukan konfigurasi klien OpenVPN yang valid" + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Berkas yang akan diimpor bukan suatu konfigurasi OpenVPN yang valid (tidak " +"ada remote)" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "argumen path kurang" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "koneksi bukan koneksi OpenVPN yang valid" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "koneksi tak lengkap (kurang gateway)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "gagal menulis berkas: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibel dengan server OpenVPN." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "ekstensi berkas OpenVPN yang tak diketahui" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Sertifikat (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Kata Sandi" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Kata Sandi dengan Sertifikat (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Kunci Statik" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "tidak bisa membuat objek openvpn" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "tidak bisa memuat widget UI" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "kelas objek '%s' tidak punya properti bernama '%s'" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "properti '%s' dari kelas objek '%s' tak dapat ditulisi" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"properti construct \"%s\" bagi objek '%s' tidak bisa ditata setelah " +"konstruksi" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"'%s::%s' bukan nama properti yang valid; '%s' bukan suatu sub tipe GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "tidak bisa menata properti '%s' bertipe '%s' dari nilai bertipe '%s'" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"nilai \"%s\" bertipe '%s' tak valid atau di luar jangkauan bagi properti " +"'%s' bertipe '%s'" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "berkas plugin \"%s\" kurang" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "tak bisa memuat plugin penyunting: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "tak bisa memuat pabrik %s dari plugin: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "galat tak dikenal saat membuat instansi penyunting" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "karakter pembatas '%c' tidak valid" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "karakter bukan utf-8 yang tidak valid" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "host kosong" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "port tak valid" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "protokol tak valid" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "alamat \"%s\" tidak valid" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "properti integer \"%s\" tidak valid atau diluar jangkauan [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "properti bool \"%s\" tidak valid (bukan yes atau no)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "properti \"%s\" tipe %s tidak ditangani" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "properti \"%s\" tidak valid atau tak didukung" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Tak ada opsi konfigurasi VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Perlu nama pengguna." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Perlu sandi." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Perlu nama pengguna dan sandi." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Perlu sandi kunci privat." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Perlu nama pengguna Proksi HTTP." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Perlu sandi Proksi HTTP." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Perlu nama pengguna dan sandi Proksi HTTP." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "Tak bisa memroses permintaan karena pengaturan koneksi VPN tak valid." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Tipe sambungan tak valid." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Tak bisa temukan biner openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Otentikasi HMAC tak valid." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Nomor port \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Proto \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Tipe proksi \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Durasi ping \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Durasi ping-exit \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Durasi ping-restart \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Argumen max-routes \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Ukuran kunci \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Konfigurasi tidak valid dengan tls-remote dan verify-x509-name." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "verify-x509-name tidak valid." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Reneg detik \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Ukuran MTU TUN \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Ukuran fragmen \"%s\" tidak valid." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Tipe sambungan \"%s\" tidak dikenal." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Pengguna \"%s\" tidak ditemukan, periksa NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Grup \"%s\" tidak ditemukan, periksa NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Otentikasi tertunda yang tak tertangani." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Jangan keluar ketika koneksi VPN berakhir" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Aktifkan log pengawakutuan verbose (mungkin mengungkap sandi)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "Nama D-Bus untuk dipakai bagi instansi ini" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service menyediakan kapabilitas OpenVPN terintegrasi ke " +"NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-Auth" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-Crypt" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Mungkin" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Ya" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Umum" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Gateway jauh, dengan port dan protokol opsional (mis. ovpn.corp.com:1234:" +"tcp). Anda dapat menyatakan beberapa host untuk redundansi (gunakan koma " +"atau spasi sebagai pembatas).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Otentikasi" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Nama pengguna:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Sandi dilewatkan ke OpenVPN ketika diminta.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nama pengguna yang dilewatkan ke OpenVPN ketika diminta.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Alamat IP Jauh:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Alamat IP Lokal:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Arah Kunci:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Kunci Statik:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Berkas prakongsi bagi mode enkripsi Kunci Statik (non-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Alamat IP dari titik ujung VPN jauh.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Alamat IP dari titik ujung VPN lokal.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Arah bagi mode enkripsi Kunci Statik (non-TLS).\n" +"Bila arah kunci dipakai, ini mesti lawan dari yang dipakai pada pasangan " +"VPN. Sebagai contoh, bila pasangan memakai \"1\", sambungan ini mesti " +"memakai \"0\". Bila Anda tak yakin nilai apa yang dipakai, hubungi " +"administrator sistem Anda.\n" +"config: static [arah]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Jenis:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Pilih mode otentikasi." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "Tingkat _Lanjut…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Opsi Tingkat Lanjut OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Gunakan p_ort gateway gubahan:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Nomor port TCP/UDP bagi peer. (Nilai baku ketika tak ada port bagi " +"gateway).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Gunakan interval _renegosiasi gubahan:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegosiasi kunci kanal data setelah selang waktu detik yang dinyatakan.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Gunakan pemampatan data L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Pakai kompresi LZO cepat.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Pilih mode kompresi data LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Gunakan koneksi _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Pakai TCP untuk berkomunikasi dengan host remote.\n" +"(Ini adalah pengaturan baku yang hanya dipakai ketika tak ada protokol yang " +"dinyatakan bagi gateway.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Atur tipe _perangkat virtual:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Secara eksplisit menata tipe dan nama (TUN/TAP) perangkat." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Secara eksplisit menata tipe perangkat virtual (TUN/TAP).\n" +"config: dev-type tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " dan _nama:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Gunakan nama ubahan bagi perangkat virtual TUN/TAP (sebagai pengganti baku " +"\"tun\" atau \"tap\").\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Gunakan MTU _tembusan gubahan:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Atur MTU perangkat TUN ke nilai yang dinyatakan dan turunkan MTU link " +"darinya.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Gunakan ukuran _fragmen UDP gubahan:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Aktifkan fragmentasi datagram internel dengan ukuran maksimum ini.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Batasi MSS TCP tembusan" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Batasi MSS TCP tunnel.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "_Acak host jauh" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Acak urutan daftar gateway (remote) sebagai suatu cara penyeimbangan beban " +"dasar.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "link tun IPv6" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Bangun suatu saluran tun yang mampu meneruskan trafik IPv6\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Nyatakan ping _exit atau restart:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Keluar atau mulai lagi setelah melewati n detik tanpa menerima ping atau " +"paket lain dari remote.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Nyatakan interval pin_g:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Ping remote melalui kanal kendali TCP/UDP bila tak ada paket yang dikirim " +"paling tidak selama n detik.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Terima paket otentikasi dari sebarang alamat (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Mengizinkan peer remote mengubah alamat IPnya dan/atau nomor port, seperti " +"misalnya karena DHCP (ini baku bila --remote tidak dipakai). --float ketika " +"dinyatakan dengan --remote mengizinkan suatu sesi OpenVPN untuk pada awalnya " +"menyambung ke suatu peer pada sebuah alamat yang diketahui, namun bila paket " +"datang dari alamat baru dan lolos semua uji otentikasi, alamat baru akan " +"mengambil alih kendali sesi. Ini berguna ketika Anda menyambung ke suatu " +"peer yang memiliki alamat dinamik seperti pengguna dial-in atau klien DHCP.\n" +"\n" +"Pada intinya, --float memberitahu OpenVPN untuk menerima paket otentikasi " +"dari sebarang alamat, tidak hanya alamat yang telah dinyatakan dalam opsi --" +"remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Nyatakan rute maksimum:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Nyatakan banyaknya route yang diizinkan untuk diperoleh dari server.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Enkripsi paket dengan algoritma cipher. Bakunya adalah BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Gunakan uku_ran gubahan kunci cipher:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Tata ukuran kunci cipher ke suatu nilai ubahan. Bila tak dinyatakan, baku ke " +"ukuran spesifik cipher.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Otentikasikan paket dengan HMAC memakai algortima message digest. Bakunya " +"adalah SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "Cipher:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "Otentikasi HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Keamanan" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "Cocok Subjek:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Subject atau Common Name yang dipakai untuk melakukan verifikasi sertifikat " +"server.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (mode warisan): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Pemeriksaan _Sertifikat Server:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Verifikasikan identifikasi sertifikat server.\n" +"\n" +"Ketika difungsikan, koneksi hanya akan berhasil bila sertifikat server cocok " +"dengan properti yang diharapkan.\n" +"Kecocokan bisa berlaku atas seluruh subjek sertifikat (semua ruas),\n" +"atau hanya Common Name (ruas CN).\n" +"\n" +"Opsi warisan tls-remote usang dan dihapus dari OpenVPN 2.4 dan yang lebih " +"baru. Jangan pakai itu lagi.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (mode warisan): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verifikasi tanda tangan penggunaan sertifikat peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Mempersyaratkan sertifikat peer ditandatangani dengan penggunaan kunci yang " +"eksplisit dan penggunaan kunci yang diperluas berbasis aturan TLS RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "Tipe TLS sertifikat peer _remote:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Mempersyaratkan sertifikat peer ditandatangani dengan penggunaan kunci yang " +"eksplisit dan penggunaan kunci yang diperluas berbasis aturan TLS RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Verifikasi penugasan nsCertType sertifikat peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Mempersyaratkan sertifikat peer ditandatangani dengan penugasan nsCertType " +"yang eksplisit." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Penugasan nsCert sertifikat peer _remote:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Mempersyaratkan sertifikat peer ditandatangani dengan penugasan nsCertType " +"yang eksplisit.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "Arah Kunci:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Gunakan lapisan tambahan otentikasi HMAC di atas kanal kendali TLS untuk " +"melindungi dari serangan DoS.\n" +"config: tls-auth [arah]" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parameter arah bagi mode kunci statik.\n" +"Bila arah kunci dipakai, ini mesti lawan dari yang dipakai pada pasangan " +"VPN. Sebagai contoh, bila pasangan memakai \"1\", sambungan ini mesti " +"memakai \"0\". Bila Anda tidak yakin nilai apa yang dipakai, hubungi " +"administrator sistem Anda.\n" +"config: tls-auth [arah]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "Berkas Kunci:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Mode" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Tambahkan lapisan tambahan enkripsi atau otentikasi HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Additional TLS authentication or encryption" +msgstr "Tambahan otentikasi atau enkripsi TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "Otentikasi TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Jenis proksi: HTTP atau Socks.\n" +"config: http-proxy atau socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Jenis Proksi:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Pilih opsi ini bila organisasi Anda memerlukan penggunaan server proksi " +"untuk mengakses Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "Alamat Server:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Menyambung ke host jauh melalui suatu proksi dengan alamat ini.\n" +"config: http-proxy atau socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Menyambung ke host jauh melalui suatu proksi dengan port ini.\n" +"config: http-proxy atau socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "Coba lagi sete_rusnya ketika terjadi galat" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Coba ulang selamanya ketika proksi galat. Ini mensimulasikan suatu reset " +"SIGUSR1.\n" +"config: http-proxy-retry atau socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Nama Pengguna Proksi:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Sandi Proksi:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Nama pengguna proksi HTTP/Socks yang dilewatkan ke OpenVPN ketika diminta." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Sandi proksi HTTP/Socks yang dilewatkan ke OpenVPN ketika diminta." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "Tampilkan sandi" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Proksi" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Deteksi path mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Rupa-rupa" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..aaf8e9c --- /dev/null +++ b/po/it.po @@ -0,0 +1,995 @@ +# Italian translation of network-manager-openvpn +# Copyright (C) 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2015 the network-manager-openvpnS COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# Francesco Marletta , 2006, 2007, 2008, 2009, 2010. +# Luca Ferretti , 2010. +# Milo Casagrande , 2012, 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2015-12-17 01:55+0000\n" +"PO-Revision-Date: 2015-12-17 09:50+0100\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Poedit 1.8.6\n" + +#: ../auth-dialog/main.c:182 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autenticazione VPN %s" + +#: ../auth-dialog/main.c:189 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Password:" + +#: ../auth-dialog/main.c:196 +msgid "Certificate password:" +msgstr "Password del certificato:" + +#: ../auth-dialog/main.c:203 +msgid "HTTP proxy password:" +msgstr "Password proxy HTTP:" + +#: ../auth-dialog/main.c:241 +msgid "Authenticate VPN" +msgstr "Autenticazione VPN" + +#: ../auth-dialog/main.c:250 +msgid "Certificate pass_word:" +msgstr "Pass_word del certificato:" + +#: ../auth-dialog/main.c:256 +msgid "_HTTP proxy password:" +msgstr "Password pro_xy HTTP:" + +#: ../auth-dialog/main.c:520 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"È necessario autenticarsi per accedere alla VPN (rete privata virtuale) «%s»." + +#: ../properties/auth-helpers.c:188 +msgid "Choose your personal certificate..." +msgstr "Scegliere il certificato personale..." + +#: ../properties/auth-helpers.c:206 +msgid "Choose your private key..." +msgstr "Scegliere la chiave privata..." + +#: ../properties/auth-helpers.c:322 +msgid "Choose a Certificate Authority certificate..." +msgstr "Scegliere un certificato di un'Autorità di Certificazione..." + +#: ../properties/auth-helpers.c:366 +msgid "Choose an OpenVPN static key..." +msgstr "Scegliere una chiave statica OpenVPN..." + +#: ../properties/auth-helpers.c:390 ../properties/auth-helpers.c:1130 +#: ../properties/auth-helpers.c:1756 +msgid "None" +msgstr "Nessuno" + +#: ../properties/auth-helpers.c:832 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificati PEM o PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:833 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificati PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:893 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Chiavi statiche OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1034 ../properties/auth-helpers.c:1122 +msgid "Default" +msgstr "Predefinito" + +#: ../properties/auth-helpers.c:1132 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1134 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1136 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1138 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1140 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1142 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1144 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1146 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1197 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1202 +msgid "Client" +msgstr "Client" + +#: ../properties/auth-helpers.c:1470 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Non richiesto" + +#: ../properties/auth-helpers.c:1472 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1474 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automatica)" + +#: ../properties/auth-helpers.c:1823 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1825 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:1058 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "Il file da importare non era una configurazione client OpenVPN valida." + +#: ../properties/import-export.c:1065 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" +"Il file da importare non era una configurazione OpenVPN valida (nessun " +"remoto)" + +#: ../properties/import-export.c:1186 +msgid "could not open file for writing" +msgstr "impossibile aprire il file per la scrittura" + +#: ../properties/import-export.c:1197 +msgid "connection was incomplete (missing gateway)" +msgstr "la connessione non era completa (gateway mancante)" + +#: ../properties/nm-openvpn.c:69 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:70 +msgid "Compatible with the OpenVPN server." +msgstr "Compatibile con il server OpenVPN." + +#: ../properties/nm-openvpn.c:351 +msgid "Certificates (TLS)" +msgstr "Certificati (TLS)" + +#: ../properties/nm-openvpn.c:362 +msgid "Password" +msgstr "Password" + +#: ../properties/nm-openvpn.c:375 +msgid "Password with Certificates (TLS)" +msgstr "Password con certificati (TLS)" + +#: ../properties/nm-openvpn.c:387 +msgid "Static Key" +msgstr "Chiave statica" + +#: ../properties/nm-openvpn.c:535 +msgid "could not create openvpn object" +msgstr "impossibile creare oggetto openvpn" + +#: ../properties/nm-openvpn.c:561 +msgid "could not load UI widget" +msgstr "impossibile caricare elemento grafico" + +#: ../properties/nm-openvpn.c:652 +msgid "unknown OpenVPN file extension" +msgstr "estensione file OpenVPN non conosciuta" + +#: ../properties/nm-openvpn.c:680 +msgid "not a valid OpenVPN configuration file" +msgstr "non è un file di configurazione OpenVPN valido" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Generale" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Gateway remoto con porta e protocollo opzionali (come ovpn.corp.it:1234:" +"tcp). È possibile specificare molteplici host per ridondanza (usare virgole " +"o spazi per separarli).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autenticazione" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Mostra le pass_word" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Password per la chiave privata" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Password della chiave privata:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Chiave privata del nodo locale in formato .pem\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Chiave privata:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"File Autorità Certificazione (CA) in formato .pem\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificato CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificato utente:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Certificato firmato del nodo locale in formato .pem (firmato dalla CA del " +"valore «CA Certificate»)\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Password data a OpenVPN quando richiesta\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nome utente:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nome utente dato a OpenVPN quando richiesto\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Indirizzo IP del nodo VPN locale\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Indirizzo IP remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Indirizzo IP locale:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Direzione della chiave:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Chiave statica:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"File pre-condiviso per modalità di cifratura a chiave statica (non-TLS)\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direzione della modalità di cifratura a chiave statica (non-TLS)\n" +"Se usata, la direzione della chiave deve essere opposta a quella del peer " +"della VPN. Per esempio, se il peer usa \"1\", questa connessione deve usare " +"\"0\". Se si è incerti sul valore da usare, contattare l'amministratore di " +"sistema.\n" +"config: static [direzione]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Seleziona la modalità di autenticazione" + +# NdT: sono le preferenze avanzate +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_vanzate..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Opzioni OpenVPN avanzate" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Usare una p_orta gateway personalizzata:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Numero porta TPC/UDP per il nodo.\n" +"(Valore predefinito quando non è specificata una porta per il gateway)\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Usare un intervallo di _rinegoziazione personalizzato:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Richiede la chiave del canale dati passati i secondi specificati\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Usare la compressione L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Utilizza la compressione LZO veloce\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Usare una connessione _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Utilizza TCP per comunicare con l'host remoto.\n" +"(Valore predefinito usato quando non è specificato un protocollo per il " +"gateway)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Set virtual _device type:" +msgstr "Imposta tipo device _virtuale:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Imposta esplicitamente il tipo di device virtuale e il nome (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Imposta esplicitamente un tipo di device virtuale (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid " and _name:" +msgstr " e _nome:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Usa un nome personalizzato per il dispositivo virtuale TUN/TAP (al posto di " +"\"tun\" o \"tap\").\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Usare una MTU (Maximum Transmission Unit) personalizzata per il _tunnel:" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Assegna il valore specificato alla MTU del device TUN e ne deriva il " +"collegamento MTU\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Use custom UDP _fragment size:" +msgstr "Usare una dimensione di _frammento UDP personalizzata:" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Abilita frammentazione interna del datagram con la dimensione massima " +"specificata\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Limitare il Maximum Segment Size (MSS) TCP del tunnel" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Limita MSS TCP del tunnel\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Rando_mize remote hosts" +msgstr "_Host remoti casuali" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Come forma di bilanciamento del carico genera un elenco casuale dei gateway " +"remoti\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address " +"and pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "Specify pin_g interval:" +msgstr "Specificare intervallo p_ing:" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify _exit or restart ping:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "General" +msgstr "Generale" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Cifra i pacchetti con l'algoritmo specificato, quello predefinito è BF-CBC " +"(Blowfish - Cipher Block Chaining)\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "Use custom _size of cipher key:" +msgstr "Usare dimensione _personalizzata per la chiave del cifrario:" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Imposta la chiave del cifrario a un valore personalizzato. Se non " +"specificato, viene usata la dimensione specifica del cifrario.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentica i pacchetti con HMAC utilizzando l'algoritmo di digest, quello " +"predefinito è SHA1\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Ci_pher:" +msgstr "Ci_frario:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "_HMAC Authentication:" +msgstr "Autenticazione _HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Security" +msgstr "Sicurezza" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "_Subject Match:" +msgstr "Corrispondenza _oggetto:" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Connette solo ai server il cui certificato corrisponde all'oggetto " +"indicato.\n" +"Esempio: /CN=miavpn.società.it" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Accetta connessioni solo da un host con nome o nome comune X509 uguale a " +"quello specificato\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verificare la firma di utilizzo del certificato del peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Richiede che il certificato del peer sia stato firmato con «Key Usage» ed " +"«Extended Key Usage» particolari basati sulle regole TLS di RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "_Remote peer certificate TLS type:" +msgstr "Ti_po di certificato TLS del peer remote:" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Richiede che il certificato del peer sia stato firmato con «Key Usage» ed " +"«Extended Key Usage» particolari basati sulle regole TLS di RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "Use additional _TLS authentication" +msgstr "Usare autenticazione _TLS aggiuntiva" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Add an additional layer of HMAC authentication." +msgstr "Aggiunge un ulteriore livello di autenticazione HMAC" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "Key _Direction:" +msgstr "_Direzione della chiave:" + +#: ../properties/nm-openvpn-dialog.ui.h:111 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Aggiunge un ulteriore livello di autenticazione HMAC sul canale di controllo " +"TLS come protezione contro attacchi DoS\n" +"config: tls-auth [direzione]" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parametro direzione per la modalità a chiave statica\n" +"Se usata, la direzione della chiave deve essere opposta a quella del peer " +"della VPN. Per esempio, se il peer usa \"1\", questa connessione deve usare " +"\"0\". Se si è incerti sul valore da usare, contattare l'amministratore di " +"sistema.\n" +"config: tls-auth [direzione]" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "Key _File:" +msgstr "File _chiave:" + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "TLS Authentication" +msgstr "_Autenticazione TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipo di proxy: HTTP o Socks\n" +"config: http-proxy oppure socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "Proxy _Type:" +msgstr "Tipo pro_xy:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Selezionare questa opzione se la propria organizzazione richiede l'uso di " +"un server proxy per accedere a Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "Server _Address:" +msgstr "In_dirizzo server:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Si collega all'host remoto attraverso un proxy con questo indirizzo\n" +"config: http-proxy oppure socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "_Port:" +msgstr "_Porta:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Si collega all'host remoto attraverso un proxy con questa porta\n" +"config: http-proxy oppure socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "_Retry indefinitely when errors occur" +msgstr "_Riprovare indefinitamente quando si verificano errori" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Riprova indefinitamente in presenza di errori sul proxy, simula un reset " +"SIGUSR1\n" +"config: http-proxy-retry oppure socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Proxy _Username:" +msgstr "Nome utente proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Proxy Passwor_d:" +msgstr "Password del proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "Nome utente proxy HTTP/Socks dato a OpenVPN quando richiesto." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Password proxy HTTP/Socks data a OpenVPN quando richiesta" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "_Show password" +msgstr "Mostra la pass_word" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxies" +msgstr "Proxy" + +#: ../src/nm-openvpn-service.c:207 +#, c-format +msgid "invalid address '%s'" +msgstr "Indirizzo «%s» non valido" + +#: ../src/nm-openvpn-service.c:219 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "Proprietà intera «%s» non valida o fuori intervallo [%d → %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:230 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "Proprietà booleana «%s» non valida (non yes o no)" + +#: ../src/nm-openvpn-service.c:237 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "proprietà «%s» di tipo %s non gestita" + +#: ../src/nm-openvpn-service.c:248 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "Proprietà «%s» non valida o non supportata" + +#: ../src/nm-openvpn-service.c:264 +msgid "No VPN configuration options." +msgstr "Nessuna opzione di configurazione VPN." + +#: ../src/nm-openvpn-service.c:433 +msgid "A username is required." +msgstr "È richiesto un nome utente." + +#: ../src/nm-openvpn-service.c:437 +msgid "A password is required." +msgstr "È richiesta una password." + +#: ../src/nm-openvpn-service.c:440 +msgid "A username and password are required." +msgstr "Un nome utente e una password sono richiesti." + +#: ../src/nm-openvpn-service.c:460 +msgid "A private key password is required." +msgstr "Una password della chiave privata è richiesta." + +#: ../src/nm-openvpn-service.c:473 +msgid "An HTTP Proxy username is required." +msgstr "Un nome utente per il proxy HTTP è richiesto." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy password is required." +msgstr "Una password per il proxy HTTP è richiesta." + +#: ../src/nm-openvpn-service.c:480 +msgid "An HTTP Proxy username and password are required." +msgstr "Un nome utente e una password per il proxy HTTP sono richiesti." + +#: ../src/nm-openvpn-service.c:952 +msgid "Could not find the openvpn binary." +msgstr "Impossibile trovare il file binario di openvpn." + +#: ../src/nm-openvpn-service.c:962 +msgid "Invalid HMAC auth." +msgstr "Autorizzazione HMAC non valida." + +#: ../src/nm-openvpn-service.c:972 ../src/nm-openvpn-service.c:1674 +msgid "Invalid connection type." +msgstr "Tipo di connessione non valido." + +#: ../src/nm-openvpn-service.c:1007 ../src/nm-openvpn-service.c:1017 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Numero porta «%s» non valido." + +#: ../src/nm-openvpn-service.c:1032 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Protocollo «%s» non valido." + +#: ../src/nm-openvpn-service.c:1073 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Tipo di proxy «%s» non valido." + +#: ../src/nm-openvpn-service.c:1096 +#, c-format +msgid "Invalid ping duration '%s'." +msgstr "Durata ping «%s» non valida." + +#: ../src/nm-openvpn-service.c:1110 +#, fuzzy, c-format +#| msgid "Invalid proto '%s'." +msgid "Invalid ping-exit duration '%s'." +msgstr "Protocollo «%s» non valido." + +#: ../src/nm-openvpn-service.c:1124 +#, fuzzy, c-format +#| msgid "Invalid port number '%s'." +msgid "Invalid ping-restart duration '%s'." +msgstr "Numero porta «%s» non valido." + +#: ../src/nm-openvpn-service.c:1174 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Dimensione della chiave «%s» non valida." + +#: ../src/nm-openvpn-service.c:1224 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Secondi di rinegoziazione «%s» non validi." + +#: ../src/nm-openvpn-service.c:1256 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Dimensione «%s» TUN MTU non valida." + +#: ../src/nm-openvpn-service.c:1271 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Dimensione «%s» del frammento non valida." + +#: ../src/nm-openvpn-service.c:1347 +msgid "Missing required local IP address for static key mode." +msgstr "" +"Manca l'indirizzo IP locale richiesto per la modalità a chiave statica." + +#: ../src/nm-openvpn-service.c:1359 +msgid "Missing required remote IP address for static key mode." +msgstr "" +"Manca l'indirizzo IP remoto richiesto per la modalità a chiave statica." + +#: ../src/nm-openvpn-service.c:1384 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Tipo di connessione «%s» sconosciuta." + +#: ../src/nm-openvpn-service.c:1409 +#, c-format +msgid "User '%s' not found, check NM_OPENVPN_USER." +msgstr "" + +#: ../src/nm-openvpn-service.c:1423 +#, c-format +msgid "Group '%s' not found, check NM_OPENVPN_GROUP." +msgstr "" + +#: ../src/nm-openvpn-service.c:1588 ../src/nm-openvpn-service.c:1665 +#: ../src/nm-openvpn-service.c:1699 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Impossibile elaborare la richiesta poiché le impostazioni della connessione " +"VPN non sono corrette." + +#: ../src/nm-openvpn-service.c:1597 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Impossibile elaborare la richiesta poiché il tipo di connessione openvpn non " +"è valido." + +#: ../src/nm-openvpn-service.c:1713 +msgid "Unhandled pending authentication." +msgstr "Autenticazione non gestita." + +#: ../src/nm-openvpn-service.c:1831 +msgid "Don't quit when VPN connection terminates" +msgstr "Non esce quando la connessione VPN termina" + +#: ../src/nm-openvpn-service.c:1832 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Abilita output prolisso per il debug (potrebbe visualizzare password)" + +#: ../src/nm-openvpn-service.c:1833 +msgid "D-Bus name to use for this instance" +msgstr "" + +#: ../src/nm-openvpn-service.c:1856 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service fornisce funzionalità OpenVPN integrate in NetworkManager." + +#~ msgid "Saved" +#~ msgstr "Salvata" + +#~ msgid "Always Ask" +#~ msgstr "Chiedere ogni volta" + +#~ msgid "Not Required" +#~ msgstr "Non richiesta" diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..9436f5c --- /dev/null +++ b/po/ja.po @@ -0,0 +1,837 @@ +# Japanese message catalog for NetworkManager-openvpn +# Copyright (C) 2006 THE NetworkManager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the NetworkManager-openvpn package. +# Satoru SATOH , 2006, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2013-10-03 15:37+0900\n" +"Last-Translator: Hajime Taira \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "VPN %s の認証" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "パスワード:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "証明パスワード:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN 認証" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "証明パスワード(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "仮想プライベートネットワーク '%s' にアクセスするには認証が必要です。" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN 接続マネージャー (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "VPN 接続を追加、削除または編集" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "個人用証明書を選択する..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "プライベートキーを選択する..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "保存しました" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "毎回求める" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "不要" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "認証局(CA)証明書を選択..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN の共通鍵を選択する..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "なし" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM または PKCS#12 証明書 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM 証明書 (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN 共通鍵 (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "デフォルト" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "サーバー" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "クライアント" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "不要" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN サーバーとの互換性" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "証明書 (TLS):" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "パスワード" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "パスワードと証明書 (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "共通鍵" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "openvpn のバイナリが見つかりません" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "OpenVPN 設定オプションがありません。" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "全般" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "ゲートウェイ(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "認証" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "パスワードを表示する(_S)" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "秘密鍵のパスワード" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "秘密鍵のパスワード:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"ローカルピアの .pem 形式の秘密鍵\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "秘密鍵:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA 証明書:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "ユーザー証明書:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "ユーザー名:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"ローカルの VPN 終点装置の IP アドレス\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "リモート IP アドレス:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "ローカル IP アドレス:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"リモートの VPN 終点装置の IP アドレス\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "鍵の方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "共通鍵:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "タイプ:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "認証モードを選択肢てください。" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "詳細(_V)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Options の詳細オプション" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "カスタムのゲートウェイポート(_O):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"ローカルピアの TCP/UDP ポート番号\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "カスタムの再交渉間隔を利用する(_R):" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "LZO データ圧縮を利用する(_Z)" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"LZO 圧縮を優先して利用する\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "TCP 接続を利用する(_T)" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"リモートホストの通信に TCP を利用する\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +#, fuzzy +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"TUN の代わりに TAP 仮想ネットワークデバイスを利用する\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "カスタムのトンネル Maximum Transmission _Unit (MTU) を利用する:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "カスタムの UDP フラグメントサイズを利用する(_F):" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "トンネルの TCP Maximum _Segment Size (MSS) を制限する" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"トンネルの TCP MSS を制限する\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "全般" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "暗号(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC 認証(_H):" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "セキュリティ" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "ピア(サーバー)の証明書の署名を検証する(_V)" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "追加で TLS 認証を利用する(_T)" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "鍵の方向(_D):" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "鍵ファイル(_F):" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS 認証" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "プロキシのタイプ(_T):" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "サーバーのアドレス(_A):" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "ポート(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "プロキシユーザー名(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "プロキシパスワード(_D):" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "パスワードを表示する(_S)" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "無効なアドレス '%s'" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" +"数値型プロパティ '%s' が無効な数値か、もしくは設定値が範囲外です。[%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" +"ブーリアン型プロパティ '%s' が無効な値です。(値はyes、noではありません)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "プロパティ '%s' の型 (%s) を処理できません。" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "プロパティ '%s' は無効かサポートされていません。" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "OpenVPN 設定オプションがありません。" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "ユーザー名が必要です。" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "パスワードが必要です。" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "ユーザー名とパスワードが必要です。" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "秘密鍵のパスワードが必要です。" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "HTTP プロキシのユーザー名が必要です。" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "HTTP プロキシのパスワードが必要です。" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "HTTP プロキシのユーザー名とパスワードが必要です。" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "openvpn のバイナリが見つかりません" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "HMAC 認証は無効です。" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "接続タイプは無効です。" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "ポート番号 '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "プロキシタイプ '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "プロキシタイプ '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "キーサイズ '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "再交渉時間(秒) '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "TUN MTU サイズ '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "フラグメントサイズ '%s' は無効です。" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "共通鍵モードのためにローカル IP アドレスが必要です。" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "共通鍵モードのためにリモート IP アドレスが必要です。" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "接続タイプ '%s' は不明です。" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "VPN 接続の設定が無効であるため、リクエストを処理できませんでした。" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"openvpn 接続のタイプが無効であるため、リクエストを処理できませんでした。" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "対処できない認証で保留中です。" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "終了時に VPN 接続を切断しない" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"詳細なデバッグログ機能を有効化する (パスワードが露出する可能性があります)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service は NetworkManager に統合化された OpenVPN 機能を提供しま" +"す。" + +#~ msgid "Use a TA_P device" +#~ msgstr "TAP デバイスを利用する(_P)" + +#~ msgid "_Password:" +#~ msgstr "パスワード(_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "第二パスワード(_S):" diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..0c6179e --- /dev/null +++ b/po/ka.po @@ -0,0 +1,1075 @@ +# translation of NetworkManager-openvpn.HEAD.po to Georgian +# Vladimer Sichinava ვლადიმერ სიჭინავა , 2007. +# Malkhaz Barkalaya მალზახ ბარკალაია +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2007-03-07 01:02+0100\n" +"Last-Translator: Vladimer Sichinava ვლადიმერ სიჭინავა \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN-ავტორიზაცია" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_პაროლი:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "სერტიფიკატის პაროლი:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN-ავტორიზაცია" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_სერტიფიკატის პაროლი:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "VPN '%s' ითხოვს ავტორიზაციას." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN-შეერთებების მენეჯერი (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "VPN-შეერთების დამატება, მოხსნა და რედაქტირება" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +#, fuzzy +msgid "Default" +msgstr "(ნაგულისხმევი: 1194)" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "OpenVPN-კლიენტი" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "OpenVPN-კლიენტი" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "სერტიფიკატი:" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "პაროლი" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +#, fuzzy +msgid "General" +msgstr "საჭიროა" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "_რაბის პორტი:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +#, fuzzy +msgid "Authentication" +msgstr "შეერთების სახელი" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_პაროლი:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "სერტიფიკატის პაროლი:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "ზიარი გასაღები:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "სერტიფიკატი:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "სერტიფიკატი:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "მომხმარებლის სახელი:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "დისტანციური IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "ლოკალური IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "მიმართულება:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "ზიარი გასაღები:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "_რაბის პორტი:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "LZO-კუმშვის გამოყენება" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "LZO-კუმშვის გამოყენება" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "TCP შეერთების გამოყენება" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "ციფრი: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "მიმართულება:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "VPN-ავტორიზაცია" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "_რაბის მისამართი" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "პორტი: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "_მომხმარებელი:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_პაროლი:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_პაროლი:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "შეერთების ტიპი:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "VPN-ში შესვლა ვერ მოხერხდა - არასწორია VPN-კონფიგურაციის პარამეტრები." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "_მეორადი პაროლი:" + +#~ msgid "_Domain:" +#~ msgstr "_დომენი:" + +#~ msgid "Connect _anonymously" +#~ msgstr "_ანონიმური დაკავშირება" + +#~ msgid "Connect as _user:" +#~ msgstr "_სახელი, რომლითაც ვუკავშირდებით:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_მიმდინარე სესიის პაროლის დამახსოვრება" + +#~ msgid "_Save password in keyring" +#~ msgstr "_გასაღების შენახვა აცმაში" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "იხსნება OpenVPN-შეერთება:" + +#~ msgid "Name: %s" +#~ msgstr "სახელი: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "შეერთების ტიპი: X.509 სერტიფიკატები" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "სერტ: %s" + +#~ msgid "Key: %s" +#~ msgstr "გასაღები: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "შეერთების ტიპი:ზიარი გასაღები" + +#~ msgid "Shared Key: %s" +#~ msgstr "ზიარი გასაღები: %s" + +#~ msgid "Local IP: %s" +#~ msgstr "ლოკალური IP: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "დისტანციური IP: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "შეერთების ტიპი: პაროლი" + +#~ msgid "Username: %s" +#~ msgstr "მომხმარებელი: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "შეერთების ტიპი: X.509 პაროლის ავტორიზაციით" + +#~ msgid "Remote: %s" +#~ msgstr "დისტანციური: %s" + +#~ msgid "Device: %s" +#~ msgstr "მოწყობილობა: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "პროტოკოლი: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "მარშრუტები: %s" + +#~ msgid "Use LZO Compression: %s" +#~ msgstr "LZO კუმშვის მეთოდი: %s" + +#~ msgid "Yes" +#~ msgstr "დიახ" + +#~ msgid "No" +#~ msgstr "არა" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS ავტ: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "შეერთების დეტალების შეცვლა შეიძლება \"Edit\" ღილაკით." + +#~ msgid "Cannot import settings" +#~ msgstr "ვერ ხერხდება პარამეტრების იმპორტი" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "VPN პარამეტრების ფაილი '%s' არ შეიცავს საჭირო მონაცემებს." + +#~ msgid "Select file to import" +#~ msgstr "მიუთითეთ ფაილი იმპორტისათვის" + +#~ msgid "Select CA to use" +#~ msgstr "მიუთითეთ CA" + +#~ msgid "Select certificate to use" +#~ msgstr "მიუთითეთ სერტიფიკატი" + +#~ msgid "Select key to use" +#~ msgstr "მიუთითეთ გასაღები" + +#~ msgid "Select shared key to use" +#~ msgstr "მიუთითეთ ზიარი გასაღები" + +#~ msgid "Select TA to use" +#~ msgstr "მიუთითეთ TA" + +#~ msgid "Save as..." +#~ msgstr "შეინახე როგორც..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "ფაილი \"%s\" უკვე არსებობს." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "შევცვალოთ თქვენი ფაილით?" + +#~ msgid "Failed to export configuration" +#~ msgstr "კონფიგურაციის ექსპორტი ვერ მოხერხდა" + +#~ msgid "Failed to save file %s" +#~ msgstr "ვერ მოხერხდა %s ფაილის შენახვა" + +#~ msgid "0" +#~ msgstr "0" + +#~ msgid "1" +#~ msgstr "1" + +#~ msgid "Connection Information" +#~ msgstr "ინფორმაცია შეერთების შესახებ" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "მაგალითი: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "CA file:" +#~ msgstr "CA ფაილი:" + +#~ msgid "CA file:" +#~ msgstr "CA ფაილი:" + +#~ msgid "Connection Name" +#~ msgstr "შეერთების სახელი" + +#~ msgid "Key:" +#~ msgstr "გასაღები:" + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "VPN-იდენტიფიკატორი, მაგ.: \"Campus VPN\" ან \"Corporate Network\"" + +#~ msgid "Optional" +#~ msgstr "არ არის სავალდებულო" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "შეიყვანეთ სისტემური ადმინისტრატორისაგან მიღებული ინფორმაცია. შეერთებისას " +#~ "აქ ნუ შეიყვანთ თქვენს პაროლს." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your adminstrator for the file." +#~ msgstr "" +#~ "თქვენს მიერ იმპორტირებული ფაილი არ არის OpenVPN კონფიგურაციის ფაილი. " +#~ "მოსთხოვეთ ფაილი თქვენს ადმინისტრატორს." + +#~ msgid "Shared key" +#~ msgstr "ზიარი გასაღები" + +#~ msgid "Use TAP device" +#~ msgstr "TAP მოწყობილობის გამოყენება" + +#~ msgid "Use TLS auth:" +#~ msgstr "TLS ავტ:" + +#~ msgid "Use cipher:" +#~ msgstr "ციფრი:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 სერტიფიკატები\n" +#~ "წინასწარგაზიარებული გასაღები\n" +#~ "პაროლით ავტორიზება\n" +#~ "X.509 პაროლით ავტორიზებით" + +#~ msgid "X.509/Pass" +#~ msgstr "X.509/პარ" + +#~ msgid "_Import Saved Configuration..." +#~ msgstr "_შენახული კონფიგურაციის იმპორტი..." + +#~ msgid "_Only use VPN connection for these addresses" +#~ msgstr "_ამ მისამართებისათვის მხოლოდ VPN-შეერთება" + +#~ msgid "none" +#~ msgstr "არა" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "VPN-ში შესვლა ვერ მოხერხდა - არასწორია მომხმარებლის სახელი/პაროლი ან " +#~ "სერტიფიკატის პაროლი." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "VPN-ში შესვლა ვერ მოხერხდა - პროგრამა ვერ გაიშვა." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "VPN-ში შესვლა ვერ მოხერხდა - VPN-პროგრამა ვერ დაუკავშირდა VPN-სერვერს." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "VPN-ში შესვლა ვერ მოხერხდა - VPN-პროგრამამ ვერ მიიღო სწორი კონფიგურაცია " +#~ "VPN-სერვერისაგან." + +#~ msgid "VPN connection failed" +#~ msgstr "VPN-თან შეერთება ვერ მოხერხდა" diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..3bf38c3 --- /dev/null +++ b/po/kn.po @@ -0,0 +1,856 @@ +# translation of network-manager-openvpn.master.kn.po to Kannada +# Kannada translation of network-manager-openvpn. +# Copyright (C) 2009 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Shankar Prasad , 2009. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn.master.kn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-10-30 12:23+0530\n" +"Last-Translator: Shankar Prasad \n" +"Language-Team: Kannada \n" +"Language: kn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN ಅನ್ನು ದೃಢೀಕರಿಸಿ" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "ಗುಪ್ತಪದ:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಗುಪ್ತಪದ:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN ಅನ್ನು ದೃಢೀಕರಿಸಿ" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "ಪ್ರಮಾಣಪತ್ರದ ಗುಪ್ತಪದ(_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "ನೀವು ವರ್ಚುವಲ್ ಪ್ರೈವೇಟ್ ನೆಟ್‌ವರ್ಕ್ '%s' ಅನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ದೃಢೀಕರಿಸಬೇಕಾಗುತ್ತದೆ." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "ನಿಮ್ಮ ವಯಕ್ತಿಕ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "ನಿಮ್ಮ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಆರಿಸಿ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "ಪ್ರಮಾಣಪತ್ರ ಅಥಾರಿಟಿಯ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "ಒಂದು OpenVPN ಸ್ಥಿರ ಕೀಲಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM ಪ್ರಮಾಣಪತ್ರಗಳು (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM ಪ್ರಮಾಣಪತ್ರಗಳು (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN ಸ್ಥಿರ ಕೀಲಿಗಳು (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "ಪೂರ್ವನಿಯೋಜಿತ" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN ಪರಿಚಾರಕದೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "ಪ್ರಮಾಣಪತ್ರಗಳು (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "ಗುಪ್ತಪದ" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "ಪ್ರಮಾಣಪತ್ರಗಳೊಂದಿಗಿನ ಗುಪ್ತಪದ (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "ಸ್ಥಿರ ಕೀಲಿ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "ಸಾಮಾನ್ಯ" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "ಗೇಟ್‌ವೇ(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "ದೃಢೀಕರಣ" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "ಗುಪ್ತಪದಗಳನ್ನು ತೋರಿಸು" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "ನಿಮ್ಮ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಆರಿಸಿ..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "ಖಾಸಗಿ ಕೀಲಿ ಗುಪ್ತಪದ:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "ಖಾಸಗಿ ಕೀಲಿ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA ಪ್ರಮಾಣಪತ್ರ:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "ಬಳಕೆದಾರ ಪ್ರಮಾಣಪತ್ರ:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "ಬಳಕೆದಾರ ಹೆಸರು:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "ದೂರಸ್ಥ IP ವಿಳಾಸ:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "ಸ್ಥಳೀಯ IP ವಿಳಾಸ:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "ಕೀಲಿ ದಿಕ್ಕು:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "ಸ್ಥಿರ ಕೀಲಿ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"ಕೀಲಿ ದಿಕ್ಕನ್ನು ಬಳಸಿದಲ್ಲಿ, ಅದು VPN ಪೀರ್‌ ನಲ್ಲಿ ಬಳಸಲಾಗಿದುದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿರಬೇಕು. " +"ಉದಾಹರಣೆಗೆ, ಪೀರ್ '1' ಅನ್ನು ಬಳಸಿದಲ್ಲಿ, ಈ ಸಂಪರ್ಕವು '0' ಅನ್ನು ಬಳಸಬೇಕು. ಯಾವುದನ್ನು " +"ಬಳಸಬೇಕು ಎಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿ ಗೊತ್ತಿರದೆ ಇದ್ದಲ್ಲಿ ನಿಮ್ಮ ಗಣಕ ವ್ಯವಸ್ಥಾಪಕರನ್ನು ಸಂಪರ್ಕಿಸಿ." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "ಬಗೆ:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS ದೃಢೀಕರಣ" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "ಸುಧಾರಿತ(_v)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN ಸುಧಾರಿತ ಆಯ್ಕೆಗಳು" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "ಇಚ್ಛೆಯ ಗೇಟ್‌ವೆ ಸಂಪರ್ಕಸ್ಥಾನವನ್ನು ಬಳಸು(_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "ಇಚ್ಛೆಯ ಮರುಸಂಧಾನ ಕಾಲಾವಧಿಯನ್ನು ಬಳಸು(_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "L_ZO ದತ್ತಾಂಶ ಸಂಕುಚನವನ್ನು ಬಳಸು" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "ಒಂದು _TCP ಸಂಪರ್ಕವನ್ನು ಬಳಸು" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +#, fuzzy +msgid "Use custom UDP _fragment size:" +msgstr "ಇಚ್ಛೆಯ ಮರುಸಂಧಾನ ಕಾಲಾವಧಿಯನ್ನು ಬಳಸು(_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "ಸಾಮಾನ್ಯ" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "ಸಿಫರ್:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC ದೃಢೀಕರಣ:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "ಸುರಕ್ಷತೆ" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "ಹೆಚ್ಚುವರಿ TLS ದೃಢೀಕರಣವನ್ನು ಬಳಸಿ" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "ಹೆಚ್ಚುವರಿ TLS ದೃಢೀಕರಣವನ್ನು ಬಳಸಿ" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "ಕೀಲಿ ದಿಕ್ಕು:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"ಕೀಲಿ ದಿಕ್ಕನ್ನು ಬಳಸಿದಲ್ಲಿ, ಅದು VPN ಪೀರ್‌ ನಲ್ಲಿ ಬಳಸಲಾಗಿದುದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿರಬೇಕು. " +"ಉದಾಹರಣೆಗೆ, ಪೀರ್ '1' ಅನ್ನು ಬಳಸಿದಲ್ಲಿ, ಈ ಸಂಪರ್ಕವು '0' ಅನ್ನು ಬಳಸಬೇಕು. ಯಾವುದನ್ನು " +"ಬಳಸಬೇಕು ಎಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿ ಗೊತ್ತಿರದೆ ಇದ್ದಲ್ಲಿ ನಿಮ್ಮ ಗಣಕ ವ್ಯವಸ್ಥಾಪಕರನ್ನು ಸಂಪರ್ಕಿಸಿ." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "ಕೀಲಿ ಕಡತ:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS ದೃಢೀಕರಣ" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "ದೂರಸ್ಥ IP ವಿಳಾಸ:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ಬಳಕೆದಾರಹೆಸರು(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "ಗುಪ್ತಪದ:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "ಗುಪ್ತಪದಗಳನ್ನು ತೋರಿಸು" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "ಖಾಸಗಿ ಕೀಲಿ ಗುಪ್ತಪದ:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "ಹೆಚ್ಚುವರಿ TLS ದೃಢೀಕರಣವನ್ನು ಬಳಸಿ" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "ಗುಪ್ತಪದ(_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "ಸೆಕೆಂಡರಿ ಗುಪ್ತಪದ(_S):" + +#~ msgid "_Domain:" +#~ msgstr "ಡೊಮೈನ್(_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "ಅನಾಮಧೇಯವಾಗಿ ಸಂಪರ್ಕಹೊಂದು(_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "ಈ ಬಳಕೆದಾರರಾಗಿ ಸಂಪರ್ಕಹೊಂದು(_u):" + +#~ msgid "_Remember password for this session" +#~ msgstr "ಈ ಅಧಿವೇಶನಕ್ಕಾಗಿ ಗುಪ್ತಪದವನ್ನು ನೆನಪಿಟ್ಟುಕೊ(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "ಗುಪ್ತಪದವನ್ನು ಕೀಲಿಸುರುಳಿಯಲ್ಲಿ ಉಳಿಸು(_S)" + +#~ msgid "Use a TA_P device" +#~ msgstr "ಒಂದು TA_P ಸಾಧನವನ್ನು ಬಳಸು" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..52fa0a0 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,1079 @@ +# GNOME Korea translation of nm-openvpn. +# Copyright (C) 2007 THE nm-openvpn'S COPYRIGHT HOLDER +# This file is distributed under the same license as the nm-openvpn package. +# Young-Ho Cha , 2007. +# Namhyung Kim , 2007. +# Changwoo Ryu , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: nm-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-02-27 15:45+0900\n" +"Last-Translator: Changwoo Ryu \n" +"Language-Team: GNOME Korea \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN 인증" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "암호(_P):" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "인증서 암호:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN 인증" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "인증서 암호(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "가상 사설 네트워크 '%s'에 접근할 때 인증이 필요합니다." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN 연결 관리자 (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "VPN 연결 더하기, 지우기, 편집" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "개인 인증서를 선택하십시오..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "개인 키를 선택하십시오..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "불필요" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "인증 기관 인증서를 선택하십시오..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN 고정 키를 선택하십시오..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "없음" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM 또는 PKCS#12 인증서 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM 인증서 (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN 고정 키 (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "기본값" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "불필요" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN 서버와 호환됩니다." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "인증서 (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "암호" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "암호 및 인증서 (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "고정 키" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "OpenVPN 설정" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "게이트웨이 포트(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +#, fuzzy +msgid "Authentication" +msgstr "필수 정보" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "암호(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "개인 키를 선택하십시오..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "인증서 암호:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "공유키:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "인증서 암호:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "인증서 암호:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "사용자 이름(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "원격 IP(_R):" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "로컬 IP: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "방향:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "고정 키" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +#, fuzzy +msgid "Ad_vanced..." +msgstr "고급(_V)" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN 고급 옵션" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "게이트웨이 포트(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "LZO 압축 사용(_Z)" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "LZO 압축 사용: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "TCP 연결 사용(_T)" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "암호화: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "방향:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "VPN 인증" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "포트: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "사용자 이름(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "암호(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "암호(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "OpenVPN 설정" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "연결 형식(_N):" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +msgid "Unknown connection type '%s'." +msgstr "연결 형식(_N):" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "VPN 설정 옵션이 잘못되어서 로그인 실패했습니다." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "보조 암호(_S):" + +#~ msgid "_Domain:" +#~ msgstr "도메인(_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "익명으로 연결(_A)" + +#~ msgid "Connect as _user:" +#~ msgstr "사용자로 연결(_U):" + +#~ msgid "_Remember password for this session" +#~ msgstr "이 세션에서 암호 저장(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "키 모음에 암호 저장(_S)" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "다음 OpenVPN 연결이 만들어집니다:" + +#~ msgid "Name: %s" +#~ msgstr "이름: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "연결 형식: X.509 인증서" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "인증서: %s" + +#~ msgid "Key: %s" +#~ msgstr "키: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "연결 형식: 공유키" + +#~ msgid "Shared Key: %s" +#~ msgstr "공유키: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "원격 IP: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "연결 형식: 암호" + +#~ msgid "Username: %s" +#~ msgstr "사용자이름: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "연결 형식: X.509 및 암호 인증" + +#~ msgid "Remote: %s" +#~ msgstr "원격: %s" + +#~ msgid "Device: %s" +#~ msgstr "장치: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "프로토콜: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "경로: %s" + +#~ msgid "Yes" +#~ msgstr "예" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS 인증: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "\"편집\" 단추를 눌러서 연결 설정을 바꿀 수 있습니다." + +#~ msgid "Cannot import settings" +#~ msgstr "설정을 가져올 수 없음" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "VPN 설정 파일 '%s'에 올바른 데이터가 들어있지 않습니다." + +#~ msgid "Select file to import" +#~ msgstr "가져올 파일 선택" + +#~ msgid "Select CA to use" +#~ msgstr "사용할 CA 선택" + +#~ msgid "Select certificate to use" +#~ msgstr "사용할 인증서 선택" + +#~ msgid "Select key to use" +#~ msgstr "사용할 키 선택" + +#~ msgid "Select shared key to use" +#~ msgstr "사용할 공유키 선택" + +#~ msgid "Select TA to use" +#~ msgstr "사용할 TA 선택" + +#~ msgid "Save as..." +#~ msgstr "다른 이름으로 저장..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "\"%s\" 파일이 이미 있습니다." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "이를 저장할 파일로 바꾸겠습니까?" + +#~ msgid "Failed to export configuration" +#~ msgstr "설정 내보내기 실패" + +#~ msgid "Failed to save file %s" +#~ msgstr "파일 %s(으)로 저장 실패" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "예: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "CA 파일(_A):" + +#~ msgid "Connection na_me:" +#~ msgstr "연결 이름(_M):" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "저장된 설정 가져오기(_S)..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "사설 네트워크 연결에 붙일 이름. (예: \"학교 VPN\", \"회사 네트워크\")" + +#~ msgid "Network" +#~ msgstr "네트워크" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "이 주소에는 VPN 연결 만 사용(_V):" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "시스템 관리자에게 받은 정보를 입력하십시오. 연결될 때 나타나는 화면에 암호" +#~ "를 입력하지 마십시오." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "가져올 파일은 OpenVPN 설정파일이 아닙니다. 관리자에게 파일에 대해 문의하" +#~ "시기 바랍니다." + +#~ msgid "Shared _key:" +#~ msgstr "공유키(_K):" + +#~ msgid "TLS-Auth" +#~ msgstr "TLS 인증" + +#~ msgid "Use TA_P device" +#~ msgstr "TAP 장치 사용(_P)" + +#~ msgid "Use _TLS auth:" +#~ msgstr "TLS 인증 사용(_T):" + +#~ msgid "Use cip_her:" +#~ msgstr "암호화 사용(_H):" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 인증서\n" +#~ "미리 공유된 키\n" +#~ "암호 인증\n" +#~ "X.509 및 암호 인증" + +#~ msgid "_0" +#~ msgstr "0(_0)" + +#~ msgid "_1" +#~ msgstr "1(_1)" + +#~ msgid "_Gateway address:" +#~ msgstr "게이트웨이 주소(_G):" + +#~ msgid "_Key:" +#~ msgstr "키(_K):" + +#~ msgid "_Local IP:" +#~ msgstr "로컬 IP(_L):" + +#~ msgid "_none" +#~ msgstr "없음(_N)" + +#~ msgid "Connection Name" +#~ msgstr "연결 이름" + +#~ msgid "Optional Information" +#~ msgstr "기타 정보" + +#~ msgid "CA file:" +#~ msgstr "CA 파일:" + +#~ msgid "Username:" +#~ msgstr "사용자이름:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "사용자 이름과 열쇠글 또는 인증서 열쇠글이 틀려서 로그인 실패했습니다." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "VPN 프로그램을 시작할 수 없어서 로그인 실패했습니다." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "VPN 프로그램이 VPN 서버에 연결하지 못해서 로그인 실패했습니다." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "VPN 프로그램이 VPN 서버에서 잘못된 설정값을 받아서 로그인 실패했습니다." + +#~ msgid "VPN connection failed" +#~ msgstr "VPN 연결 실패" diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..9b7dfb9 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,1480 @@ +# Lithuanian translation of NetworkManager-openvpn. +# Copyright © 2008, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the NetworkManager package. +# Žygimantas Beručka , 2008, 2010. +# Aurimas Černius , 2010, 2013, 2015, 2016, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn HEAD\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-09-28 12:20+0000\n" +"PO-Revision-Date: 2017-10-15 23:18+0300\n" +"Last-Translator: Aurimas Černius \n" +"Language-Team: Lietuvių \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Gtranslator 2.91.7\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN klientas" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klientas OpenVPN virtualiems privatiems tinklams" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "OpenVPN virtualių privačių tinklų ryšių konfigūracijos palaikymas." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" +"OpenVPN yra populiarus ir lankstus laisvos programinės įrangos VPN " +"sprendimas." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "NetworkManager kūrėjai" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Nustatyti tapatybę VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Password:" +msgstr "Slaptažodis:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Liudijimo slaptažodis:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "HTTP įgaliotojo serverio slaptažodis:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Nustatyti tapatybę VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Liudijimo slaptažo_dis:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "_HTTP įgaliotojo serverio slaptažodis:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Norint gauti prieigą prie Virtualiojo Privačiojo Tinklo „%s“, reikia " +"nustatyti jūsų tapatybę." + +#: ../properties/auth-helpers.c:280 +msgid "Choose an OpenVPN static key…" +msgstr "Pasirinkite OpenVPN statinį raktą…" + +#: ../properties/auth-helpers.c:304 ../properties/auth-helpers.c:967 +#: ../properties/auth-helpers.c:1732 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Nėra" + +#: ../properties/auth-helpers.c:718 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN statiniai raktai (*.key)" + +#: ../properties/auth-helpers.c:865 ../properties/auth-helpers.c:959 +msgid "Default" +msgstr "Numatytasis" + +#: ../properties/auth-helpers.c:969 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:971 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:973 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:975 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:977 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:979 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:981 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:983 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1026 +msgid "Don’t verify certificate identification" +msgstr "Netikrinti liudijimo identifikavimo" + +#: ../properties/auth-helpers.c:1032 +msgid "Verify whole subject exactly" +msgstr "Tiksliai patikrinti viską" + +#: ../properties/auth-helpers.c:1038 +msgid "Verify name exactly" +msgstr "Tiksliai patikrinti pavadinimą" + +#: ../properties/auth-helpers.c:1044 +msgid "Verify name by prefix" +msgstr "Patikrinti pavadinimą pagal priešdėlį" + +#: ../properties/auth-helpers.c:1050 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Dalinai patikrinti (pasenusi veiksena, primygtinai patariama nenaudoti)" + +#: ../properties/auth-helpers.c:1164 ../properties/auth-helpers.c:1235 +msgid "Server" +msgstr "Serveris" + +#: ../properties/auth-helpers.c:1169 ../properties/auth-helpers.c:1240 +msgid "Client" +msgstr "Klientas" + +#: ../properties/auth-helpers.c:1533 ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Not required" +msgstr "Nebūtina" + +#: ../properties/auth-helpers.c:1535 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1537 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automatinis)" + +#: ../properties/auth-helpers.c:1792 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1794 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "parametras %s tikisi nuo %u iki %u argumento" +msgstr[1] "parametras %s tikisi nuo %u iki %u argumentų" +msgstr[2] "parametras %s tikisi nuo %u iki %u argumentų" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "parametras %s nesitiki argumentų" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "parametras %s tikisi lygiai %u argumento" +msgstr[1] "parametras %s tikisi lygiai %u argumentų" +msgstr[2] "parametras %s tikisi lygiai %u argumentų" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argumentas %s iš „%s“ negali būti tuščias" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "„%s“ argumentas negali būti tuščias" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argumentas %s iš „%s“ privalo būti UTF-8 koduotės" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "„%s“ argumentas privalo būti UTF-8 koduotės" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "netinkamas %u argumentas į „%s“, kur tikimasi skaičiaus" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "nepalaikomas %u argumentas %s į „%s“" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"nepalaikomas %u argumentas į „%s“, kuris yra panašus į FQDN, bet palaikomas " +"tik IPv4 adresas" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "netinkamas %u argumentas į „%s“, kur tikimasi IPv4 adreso" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "netinkamas %u rakto krypties argumentas į „%s“" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "netinkamas %u argumentas į „%s“" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "neužbaigtas %s pozicijoje %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "dviguba kabutė" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "vienguba kabutė" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "atgal pasviręs brūkšnelis pabaigoje pozicijoje %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "" +"nepavyksta perskaityti HTTP įgaliotojo serverio tapatybės nustatymo failo" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"nepavyksta perskaityti naudotojo/slaptažodžio iš HTTP įgaliotojo serverio " +"tapatybės nustatymo failo" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"naudotojas/slaptažodis HTTP įgaliotojo serverio tapatybės nustatymo faile " +"turi būti UTF-8 koduote" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s“ nėra katalogas" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "nepavyksta sukurti katalogo „%s“" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "nepavyksta įrašyti <%s> bloko iš eilutės %ld į failą (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "nepavyksta įrašyti <%s> bloko iš eilutės %ld į failą „%s“" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "nepalaikomas mtu-disc argumentas" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "netinkamas parametras" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nepalaikomas comp-lzo argumentas" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "nutolęs negali turėti tarpo" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "nutolęs negali turėti kablelio" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "" +"nutolęs kompiuteris tikisi, kad protokolo tipas bus toks kaip „udp“ arba " +"„tcp“" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "netinkamas verify-x509-name tipas" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "nepalaikomas blokas/xml elementas" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "neužbaigtas bloko elementas <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "konfigūracijos klaida: %s (eilutė %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "nežinomas arba nepalaikomas parametras" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Importuojamas failas nebuvo tinkama OpenVPN kliento konfigūracija" + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Importuojamas failas nebuvo tinkama OpenVPN konfigūracija (nėra nuotolinio)" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "trūksta kelio argumento" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "ryšys nėra tinkamas OpenVPN ryšys" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "ryšys nebuvo užbaigtas (trūksta tinklų sietuvo)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "nepavyko įrašyti failo: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Suderinamas su OpenVPN serveriu." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "nežinomas OpenVPN failo plėtinys" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Liudijimai (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Slaptažodis" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Slaptažodis su liudijimais (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Statinis raktas" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "nepavyko sukurti openvpn objekto" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "nepavyko įkelti elemento UI" + +#: ../shared/nm-utils/nm-shared-utils.c:619 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "objekto klasė „%s“ neturi savybės „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:626 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "savybė „%s“ objekto klasėje „%s“ nėra rašoma" + +#: ../shared/nm-utils/nm-shared-utils.c:633 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"konstruktoriaus savybė „%s“ objekte „%s“ negali būti nustatyta po " +"sukonstravimo" + +#: ../shared/nm-utils/nm-shared-utils.c:641 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "„%s::%s“ nėra tinkamas savybės pavadinimas; „%s“ nėra GObject potipis" + +#: ../shared/nm-utils/nm-shared-utils.c:650 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "nepavyksta nustatyti savybės „%s“ tipe „%s“ į „%s“ tipo vertę" + +#: ../shared/nm-utils/nm-shared-utils.c:661 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"vertė „%s“, kurios tipas „%s“, yra netinkama arba už galimų ribų savybei " +"„%s“, kurios tipas „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "trūksta įskiepio failo „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "nepavyksta įkelti redaktoriaus įskiepio: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "nepavyksta įkelti gamyklos %s iš įskiepio: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "nežinoma klaida kuriant redaktoriaus egzempliorių" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "netinkamas skirtuko simbolis „%c“" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "netinkamas ne utf-8 simbolis" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "tuščias serveris" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "netinkamas prievadas" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "netinkamas protokolas" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "netinkamas adresas „%s“" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "netinkama sveikaskaitinė savybė „%s“ arba už ribų [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "netinkama loginė savybė „%s“ (ne taip arba ne)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "neapdorotas savybės „%s“ tipas %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "savybė „%s“ netinkama arba nepalaikoma" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Nėra VPN konfigūracijos parametrų." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Būtinas naudotojo vardas." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Būtinas slaptažodis." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Būtinas naudotojo vardas ir slaptažodis." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Būtinas privačiojo rakto slaptažodis." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Būtinas HTTP įgaliotojo serverio naudotojo vardas." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Būtinas HTTP įgaliotojo serverio slaptažodis." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Būtinas HTTP įgaliotojo serverio naudotojo vardas ir slaptažodis." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Nepavyko apdoroti užklausos, nes VPN prisijungimo nustatymai buvo netinkami." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Netinkamas prisijungimo tipas." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Nepavyko rasti openvpn programos." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Netinkama HMAC tapatybė." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Netinkamas prievado numeris „%s“." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Netinkamas proto „%s“." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Netinkamas įgaliotojo serverio tipas „%s“." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Netinkama ping trukmė „%s“." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Netinkama ping-exit trukmė „%s“." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Netinkama ping-restart trukmė „%s“." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Netinkamas max-routes argumentas „%s“." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Netinkamas rakto dydis „%s“." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Netinkama konfigūracija su tls-remote ir verify-x509-name." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Netinkamas verify-x509-name." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Netinkamos persijungimo sekundės „%s“." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Netinkamas TUN MTU dydis „%s“." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Netinkamas fragmento dydis „%s“." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Nežinomas ryšio tipas „%s“." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Naudotojas „%s“ nerastas, patikrinkite NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Grupė „%s“ nerasta, patikrinkite NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Neapdorotas laukiantis tapatybės nustatymas." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Neišeiti, kai nutrūksta VPN ryšys" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Įjungti išsamų derinimo žurnalą (gali parodyti slaptažodžius)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "D-Bus pavadinimas, kurį naudoti šiam egzemplioriui" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service suteikia NetworkManager integruotą OpenVPN galimybę." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-Auth" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-Crypt" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Galbūt" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Taip" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Bendra" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Tinklų sietuvas:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Nutolęs tinklų sietuvas(-ai), su nebūtinu prievadu ir protokolu (pvz. ovpn." +"corp.com:1234:tcp). Galite nurodyti kelis serverius papildomai (naudokite " +"kablelius arba tarpus kaip skirtukus).\n" +"konfig.: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Tapatybės nustatymas" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "CA" +msgstr "CA" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User" +msgstr "Naudotojas" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "User name:" +msgstr "Naudotojo vardas:" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Slaptažodis, perduodamas OpenVPN, kai jo prašoma.\n" +"konfig: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Naudotojo vardas, perduodamas OpenVPN, kai jo prašoma.\n" +"konfig: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Remote IP Address:" +msgstr "Nutolęs IP adresas:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Local IP Address:" +msgstr "Vietinis IP adresas:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Key Direction:" +msgstr "Rakto kryptis:" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "Static Key:" +msgstr "Statinis raktas:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Bendras failas statinio rakto šifravimo veiksenoje (ne TLS).\n" +"konfig: static " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Nutolusio VPN pabaigos taško IP adresas.\n" +"konfig: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Vietinio VPN pabaigos taško IP adresas.\n" +"konfig: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Statinio rakto šifravimo (ne TLS) veiksenos kryptis.\n" +"Jeigu naudojama rakto kryptis, ji turi būti priešinga naudojamai VPN " +"lygiarangyje. Pavyzdžiui, jeigu lygiarangyje naudojama „1“, šiam " +"prisijungimui privalo būti naudojama „0“. Jeigu nežinote, kokią reikšmę " +"naudoti, susisiekite su savo sistemos administratoriumi.\n" +"konfig.: static [kryptis]" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Type:" +msgstr "Tipas:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Select an authentication mode." +msgstr "Pasirinkite tapatybės nustatymo veikseną." + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "Ad_vanced…" +msgstr "Išplėsti_niai…" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "OpenVPN Advanced Options" +msgstr "Išplėstiniai OpenVPN parametrai" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Use custom gateway p_ort:" +msgstr "Naudoti pasirinktinį tinklų sietuvo _prievadą:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"TCP/UDP prievado numeris porininkui. (Numatytoji vertė, kai nėra prievado " +"tinklų sietuvui).\n" +"konfig.: port" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Use custom _renegotiation interval:" +msgstr "Naudoti pasirinktinį pakartotinio jungimosi intervalą:" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Iš naujo gauti duomenų kanalo raktą po nurodyto sekundžių skaičiaus.\n" +"konfig: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use L_ZO data compression" +msgstr "Naudoti L_ZO duomenų glaudinimą" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Naudoti greitą LZO suspaudimą.\n" +"konfig: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Pasirinkite LZO duomenų glaudinimo veikseną.\n" +"konfig.: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "Use a _TCP connection" +msgstr "Naudoti _TCP prisijungimą" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Naudoti TCP komunikavimui su nutolusiu serveriu.\n" +"(Tai yra numatytasis nustatymas, naudojamas tik kai nenurodytas protokolas " +"tinklų sietuvui).\n" +"konfig.: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Set virtual _device type:" +msgstr "Nustatyti virtualaus į_renginio tipą:" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Išreikštinai nustatyti įrenginio tipą ir pavadinimą (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Išreiktinai nustatyti virtualaus įrenginio tipą (TUN/TAP).\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid " and _name:" +msgstr " ir _pavadinimą:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Naudoti pasirinktinį pavadinimą TUN/TAP virtualiam įrenginiui (vietoj " +"numatytojo „tun“ arba „tap“).\n" +"konfig.: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Naudoti pasirinktinį _tunelio didžiausią perdavimo bloką (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Nustatyti TUN įrenginio MTU į nurodytą vertę ir išvesti saito MTU iš jo.\n" +"konfig: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom UDP _fragment size:" +msgstr "Naudoti pasirinktinį UDP _fragmento dydį:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Įjungti vidinio duomenų srauto fragmentavimo didžiausią dydį.\n" +"konfig: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Riboti tunelio TCP didžiausią segmento dydį (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Drausti tunelio TCP MSS.\n" +"konfig: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Rando_mize remote hosts" +msgstr "_Atsitiktiniai nutolę serveriai" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Atsitiktinė tinklų sietuvų sąrašo (nutolusių) tvarka kaip bazinė apkrovos " +"balansavimo priemonė.\n" +"konfig.: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "IPv6 tun link" +msgstr "IPv6 tun saitas" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Sukurti tun saitą, gebantį nukreipti IPv6 srautą\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "Specify _exit or restart ping:" +msgstr "Nurodyti _išėjimo arba perleidimo ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Išeiti arba perleisti po n sekundžių be ping gavimo arba kito peketo iš " +"nutolusiojo.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Specify pin_g interval:" +msgstr "Nurodyti pin_g intervalą:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Pinginti nutolusį per TCP/UDP valdymo kanalą, jei nėra išsiųstų paketų " +"paskutines n sekundžių.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Priimti nustatytos tapatybės paketus iš bet kurio adreso (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Leisti nuotoliniam porininkui pakeisti jo IP adresą ir/ar prievado numerį, " +"pavyzdžiui dėl DHCP (tai yra numatyta, jei nenaudojama --remote). --float, " +"kai nurodyta su --remote, leidžia OpenVPN seansui iš pradžių prisijungti " +"prie porininko žinomu adresu, tačiau, jei paketai atkeliaus iš naujo adreso " +"ir praeis visus tapatybės nustatymo testus, naujas adresas perims seanso " +"valdymą. Tai yra naudinga, kai jungiatės prie porininko, kuris turi " +"dinaminį adresą, pvz. telefoninio ryšio naudotojas ar DHCP klientas.\n" +"\n" +"Iš esmės --float pasako OpenVPN priimti nustatytos tapatybės paketus iš bet " +"kurio adreso, ne tik iš adreso, nurodyto --remote parametre.\n" +"\n" +"konfig.: float" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "Specify max routes:" +msgstr "Nurodykite didžiausią kelių skaičių:" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Nurodykite didžiausią kelių skaičių, kurį leidžiama nurodyti serveriui.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifruoti paketus šifravimo algoritmu. Numatytasis yra BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"konfig: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "Use custom _size of cipher key:" +msgstr "Naudoti pasirinktinį šifro rakto _dydį:" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Nustatyti šifro rakto dydį į pasirinktinę vertę. Jei nenurodyta, bus " +"naudojama numatytasis šifro dydis.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Nustatyti paketų tapatybę su HMAC naudojant pranešimų santraukos algoritmą. " +"Numatytasis yra SHA1.\n" +"konfig: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Ci_pher:" +msgstr "Šifras:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_HMAC Authentication:" +msgstr "_HMAC tapatybės nustatymas:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Security" +msgstr "Saugumas" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_Subject Match:" +msgstr "Subjekto atitikimas:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Subjektas arba dažnas pavadinimas, su kuriuo lyginti serverio liudijimo " +"informaciją.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "Server _Certificate Check:" +msgstr "Serverio _liudijimas tikrinimas:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Patikrinti serverio liudijimo identifikavimą.\n" +"\n" +"Kai įjungta, ryšys bus sėkmingas tik tuo atveju, jei serverio liudijimas " +"atitiks kai kurias savybes, kurių tikimasi.\n" +"Atitikimas gali būti taikomas visam liudijimo subjektui (visi laukai)\n" +"arba tik paprastam pavadinimui (CN laukui).\n" +"\n" +"Liekamasis parametras tls-remote yra pasenęs ir pašalintas iš OpenVPN 2.4 " +"bei naujesnių versijų. Daugiau jo nebenaudokite.\n" +"\n" +"konfig.: verify-x509-name subject-or-name [mode]\n" +"konfig. (liekamoji veiksena): tls-remote subject-or-name" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Patikrinti porininko (serverio) liudijimą naudojant parašą" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Reikalauti, kad porininko liudijimas būtų pasirašyti su išreikštiniu rakto " +"naudojimu ir išplėstiniu rakto naudojimu pagal RFC3280 TLS taisykles." + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "_Remote peer certificate TLS type:" +msgstr "_Nutoliusio porininko liudijimo TLS tipas:" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Reikalauti, kad porininko liudijimas būtų pasirašytas su išreikštiniu rakto " +"naudojimu ir išplėstiniu rakto naudojimu pagal RFC3280 TLS taisykles.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Patikrinti porininko (serverio) liudijimą nsCertType" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Reikalauti, kad porininko liudijimas būtų pasirašyti su išreikštiniu " +"nsCertType." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Remote peer certificate nsCert designation:" +msgstr "_Nutoliusio porininko liudijimo nsCert:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Reikalauti, kad porininko liudijimas būtų pasirašytas su išreikštiniu " +"nsCertType.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "Key _Direction:" +msgstr "Rakto kryptis:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Pridėti papildomą HMAC sluoksnį TSL valdymo kanalo tapatybės nustatymui " +"apsaugai nuo DoS atakų.\n" +"konfig.: tls-auth [kryptis]" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Krypties parametras statinio rakto veiksenai.\n" +"Jeigu naudojama rakto kryptis, ji turi būti priešinga naudojamai VPN " +"lygiarangyje. Pavyzdžiui, jeigu lygiarangyje naudojama „1“, šiam " +"prisijungimui turi būti naudojama „0“. Jeigu nežinote, kokią reikšmę " +"naudoti, susisiekite su savo sistemos administratoriumi.\n" +"konfig.: tls-auth [kryptis]" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Key _File:" +msgstr "Rakto failas:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Mode" +msgstr "Veiksena" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Papildomas šifravimo sluoksnis ar HMAC tapatybės nustatymas." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "Additional TLS authentication or encryption" +msgstr "Papildomas TLS tapatybės nustatymas ar šifravimas" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "TLS Authentication" +msgstr "TLS tapatybės nustatymas" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Įgaliotojo serverio tipas: HTTP arba Socks.\n" +"konfig.: http-proxy arba socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Proxy _Type:" +msgstr "Įgaliotojo serverio _tipas:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Pasirinkite šį parametrą, jei jūsų organizacija turi prieigą prie " +"interneto per įgaliotąjį serverį." + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "Server _Address:" +msgstr "Serverio adresas:" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Jungtis prie nutolusio serverio per įgaliotąjį serverį su šiuo adresu.\n" +"konfig.: http-proxy arba socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "_Port:" +msgstr "Prievadas:" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Jungtis prie nutolusio serverio per įgaliotąjį serverį su šiuo prievadu.\n" +"konfig.: http-proxy arba socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:146 +msgid "_Retry indefinitely when errors occur" +msgstr "_Mėginti dar kartą neribotą laiką, kai įvyksta klaidų" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Bandyti neribotai kilus įgaliotojo serverio klaidoms. Tai simuliuoja SIGUSR1 " +"atstatymą.\n" +"konfig.: http-proxy arba socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "Proxy _Username:" +msgstr "Įgaliotojo serverio naudotojo vardas:" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "Proxy Passwor_d:" +msgstr "Įgaliotojo serverio slaptažodis:" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/Socks įgaliotojo serverio naudotojo vardas, perduodamas OpenVPN, kai jo " +"prašoma." + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/Socks įgaliotojo serverio slaptažodis, perduodamas OpenVPN, kai jo " +"prašoma." + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "_Show password" +msgstr "Rodyti slaptažodį" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Proxies" +msgstr "Įgaliotieji serveriai" + +#: ../properties/nm-openvpn-dialog.ui.h:155 +msgid "Path mtu discovery" +msgstr "Kelio mtu atradimas" + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "Misc" +msgstr "Įvairūs" + +#~ msgid "Choose your personal certificate…" +#~ msgstr "Pasirinkite savo asmeninį liudijimą…" + +#~ msgid "Choose your private key…" +#~ msgstr "Pasirinkite savo privatųjį raktą…" + +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Pasirinkite liudijimų įstaigos liudijimą…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "PEM arba PKCS#12 liudijimai (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "PEM liudijimai (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Trūkstamas būtinas vietinis IP adresas statinio rakto veiksenai." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Trūkstamas būtinas išorinis IP adresas statinio rakto veiksenai." + +#~ msgid "_Show passwords" +#~ msgstr "Rodyti slaptažodžius" + +#~ msgid "Password for private key" +#~ msgstr "Privačiojo rakto slaptažodis" + +#~ msgid "Private Key Password:" +#~ msgstr "Privačiojo rakto slaptažodis:" + +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Vietinio porininko privatusis raktas .pem formatu.\n" +#~ "konfig.: key" + +#~ msgid "Private Key:" +#~ msgstr "Privatusis raktas:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Liudijimų įstaigos (LĮ) failas .pem formatu.\n" +#~ "konfig: ca" + +#~ msgid "CA Certificate:" +#~ msgstr "LĮ liudijimas:" + +#~ msgid "User Certificate:" +#~ msgstr "Naudotojo liudijimas:" + +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Vietinio porininko pasirašytas liudijimas .pem formatu (pasirašytas LĮ " +#~ "liudijimo įstaigos).\n" +#~ "konfig.: cert" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "nepavyksta įrašyti <%s> bloko iš eilutės %ld į failą „%s“" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "Nepavyko apdoroti užklausos, nes openvpn ryšio tipas buvo netinkamas." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Bendra" + +#~ msgid "Authentication" +#~ msgstr "Tapatybės nustatymas" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Jungtis tik prie serverių, kurių liudijimai atitinka nurodytąjį " +#~ "subjektą.\n" +#~ "Pavyzdys: /CN=myvpn.company.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Priimti ryšius tik iš serverio su X509 pavadinimu arba dažnu vardu, lygiu " +#~ "nurodytajam.\n" +#~ "konfig: tls-remote" + +#~ msgid "could not open file for writing" +#~ msgstr "nepavyko atverti failo rašymui" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "VPN ryšių tvarkyklė (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Pridėti, šalinti ir keisti VPN ryšius" + +#~ msgid "Saved" +#~ msgstr "Išsaugota" + +#~ msgid "Always Ask" +#~ msgstr "Visada klausti" + +#~ msgid "Not Required" +#~ msgstr "Nebūtina" + +#~ msgid "Use a TA_P device" +#~ msgstr "Naudoti TA_P įrenginį" diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..f60f058 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,1170 @@ +# English (British) translation for NetworkManager-openvpn +# Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the NetworkManager-openvpn package. +# +# David Lodge , 2006. +# Rūdolfs Mazurs , 2010. +# Rudolfs , 2011. +# Rūdofls Mazurs , 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager OpenVPN plugin\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2013-10-05 16:06+0300\n" +"Last-Translator: Rūdolfs Mazurs \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"X-Generator: Lokalize 1.5\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autentificēt VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Parole:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Sertifikāta parole:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentificēt VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Sertifikāta _parole:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Jums ir jāautentificējas, lai piekļūtu virtuālajiem privātajiem tīkliem “%s”." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "VPN Connection Manager (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Add, Remove, and Edit VPN Connections" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Izvēlieties savu personīgo sertifikātu..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Izvēlieties savu privāto atslēgu..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Saglabāts" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Vienmēr jautāt" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Nav nepieciešams" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Izvēlieties sertificēšanas institūcijas (CA) sertifikātu..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Izvēlieties OpenVPN statisko atslēgu..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Nav" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM vai PKCS#12 sertifikāti (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM sertifikāti (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN statiskās atslēgas (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Noklusētais" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Serveris" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Klients" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Nav nepieciešams" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Savietojams ar OpenVPN serveri." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Sertifikāti (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Parole" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Parole ar sertifikātu (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Statiskā atslēga" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Nevarēja atrast openvpn bināro datni." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Nav VPN konfigurācijas opciju." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Vispārējs" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Vārteja:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +#, fuzzy +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Attālinātā datora nosaukums vai IP adrese. Jūs varat norādīt vairākus " +"vienumus redundancei (lietojiet komatus, lai atdalītu ierakstus).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentifikācija" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Rādīt paroles" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Parole privātajai atslēgai" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Privātās atslēgas parole:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Lokālā dalībnieka atslēga .pem formātā.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Privātā atslēga:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Sertifikāta institūcijas (CA) datne .pem formātā.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA Sertifikāts:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Lietotāja sertifikāts:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Lokālā dalībnieka parakstītais sertifikāts .pem formātā (parakstījis CA no " +"CA Certificate).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Parole, kas ir padota OpenVPN, kad tā tiek prasīta.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Lietotājvārds:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Lietotājvārds, kas ir padots OpenVPN, kad tas tiek prasīts.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adrese lokālajam VPN galapunktam.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Attālinātā IP adrese:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Lokālā IP adrese:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adrese attālinātajam VPN galapunktam.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Atslēgas virziens:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Statiskās atslēgas:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Kopīgas lietošanas datne statiskās atslēgas šifrēšanas režīmam (nav TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Virziens statiskās atslēgas šifrēšanas režīmam (nav TLS).\n" +"Ja tiek izmantota virziena atslēga, tai ir jābūt pretējai, nekā otram " +"dalībniekam VPN. Piemēram, ja dalībnieks izmanto “1”, tad šim savienojumam " +"jāizmanto “0”. Ja nezināt, kādu vērtību izmantot, sazinieties ar sistēmas " +"administratoru.\n" +"config: static [virziens]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tips:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Izvēlieties autentificēšanās režīmu." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Paplašināts" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN paplašinātās opcijas" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Izmantot pielāgotu vārtejas p_ortu: " + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"TCP/UDP porta numurs lokālajam dalībniekam.\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Izmantot pielāgotu atkā_rtotās vienošanās intervālu:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Atkal vienoties par kanāla atslēgu pēc noteikta sekunžu laika.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Lietot L_ZO datu kompresiju" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Lietot ātri LZO saspiešanu.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Lietot _TCP savienojumu" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Lietot TCP, lai sazinātos ar attālināto datoru.\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +#, fuzzy +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Lietot TAP virtuālo tīklu, nevis TUN.\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Izmantot pielāgotu _tuneļa maksimālo pārraides bloku (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Likt TUN ierīces MTU pieņemt noteiktu vērtību un no tā atvasināt saites " +"MTU.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Lietot pielāgotu UDP _fragmenta izmēru:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Aktivēt iekšējo datagrammu fragmentēšanu ar šo maksimālo izmēru.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ierobežot tuneļa TCP maksimālo segmenta izmēru (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Ierobežot tuneļa TCP MSS.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Nejauši _izvēlēties attālinātos serverus" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Nejauši izvēlēties attālināto vārteju saraksta secību, kā vienkāršu slodzes " +"izlīdzināšanas veidu.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Vispārējs" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifrēt pakotnes ar cipher algoritmu. Noklusējuma ir BF-CBC (Blowfish Cipher " +"Block Chaining režīmā).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Izmantot pielāgotu šifrētāja at_slēgas garumu:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Iestatiet šifrētāja atslēgas izmēru uz pielāgotu vērtību. Ja nav norādīts, " +"tā izmantos šifrētājam specifisku izmēru.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentificēt pakotnes ar HMAC izmantojot ziņojumu sagremošanas algoritmu. " +"Noklusētais ir SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Šifrs:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC autentifikācija:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Drošība" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Subjekta atbilstība:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Savienoties tikai ar serveriem, kuru sertifikāts atbilst dotajam " +"subjektam.\n" +"Piemēram: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Pieņemt savienojumus tikai no serveriem ar X509 nosaukumu vai parastu " +"nosaukumu kas ir vienāds ar norādīto.\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "Pārbaudīt dalībnieka (ser_vera) sertifikātu, izmantojot parakstu" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Prasa, lai dalībnieka sertifikāts tiku parakstīts ar eksplicītu atslēgas " +"izmantošanu un paplašināt atslēgas izmantošanu, balstoties uz RFC3280 TLS " +"noteikumiem." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "Attālinātais dalībnieku se_rtifikāta TLS tips:" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Prasa, lai dalībnieka sertifikāts tiku parakstīts ar eksplicītu atslēgas " +"izmantošanu un paplašināt atslēgas izmantošanu, balstoties uz RFC3280 TLS " +"noteikumiem.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Lietot papildus TLS autentifikāciju" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Lietot papildu slāni HMAC autentifikācijai." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Atslēgas virziens:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Pievienot papildu HMAC autentifikācijas slāni uz TLS vadības kanāla, lai " +"aizsargātos pret DoS uzbrukumiem.\n" +"config: tls-auth [virziens]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Virziena parametrs statiskās atslēgas režīmam.\n" +"Ja tiek izmantota virziena atslēga, tai ir jābūt pretējai, nekā otram " +"dalībniekam VPN. Piemēram, ja dalībnieks izmanto “1”, tad šim savienojumam " +"jāizmanto “0”. Ja nezināt, kādu vērtību izmantot, sazinieties ar sistēmas " +"administratoru.\n" +"config: tls-auth [virziens]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Atslēgas _datne:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS autentifikācija" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Starpnieka tips: HTTP vai Socks.\n" +"config: http-proxy vai socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Starpnieka tips:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Izvēlieties šo opciju, ja jūsu organizācija izmanto starpnieka serveri, " +"lai piekļūtu Internetam." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Servera adrese:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Savienoties ar attālināto datoru caur starpnieku ar šādu adresi.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Ports:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Savienoties ar attālināto datoru caur starpnieku ar šādu portu.\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "_Mēģināt atkal nebeidzami ilgi, ja gadās kļūda" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Mēģināt atkal nebeidzami ilgi, ja starpnieks met kļūdu. Tas imitē SIGUSR1 " +"atstatīšanu.\n" +"config: http-proxy-retry vai socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Starpnieka lietotājvārds:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Starpnieka parole:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"HTTP/Socks starpnieka lietotājvārds, ko padod OpenVPN, kad tas tiek prasīts." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks starpnieka parole, ko padod OpenVPN, kad tā tiek prasīta." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Rādīt paroli" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Starpnieki" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "nederīga adrese “%s”" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "nederīga veselā skaitļa īpašība “%s” vai ārpus apgabala [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "nederīga būla īpašība “%s” (nav jā vai nē)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "neapstrādāts īpašības “%s” tips %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "īpašība “%s” nederīga vai nav atbalstīta" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Nav VPN konfigurācijas opciju." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Nepieciešams lietotājvārds." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Nepieciešama parole." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Nepieciešams lietotājvārds un parole." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Nepieciešama privātās atslēgas parole." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "Nepieciešams HTTP starpnieka lietotājvārds." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "Nepieciešama HTTP starpnieka parole." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "Nepieciešams HTTP starpnieka lietotājvārds un parole." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Nevarēja atrast openvpn bināro datni." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Nederīgs HMAC auth." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Nederīgs savienojuma tips." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Nederīgs porta numurs “%s”." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Nederīgs starpnieka tips “%s”." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Nederīgs starpnieka tips “%s”." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Nederīgs atslēgas izmērs “%s”." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Nederīgas reneg sekundes “%s”." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Nederīgs TUN MTU izmērs “%s”." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Nederīgs fragmenta izmērs “%s”." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Trūkst vajadzīgā lokālā IP adrese statiskās atslēgas režīmam." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Trūkst vajadzīgā attālinātā IP adrese statiskās atslēgas režīmam." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Nezināms savienojuma tips “%s”." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Neizdevās apstrādāt pieprasījumu, jo VPN savienojuma iestatījumi bija " +"nederīgi." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Neizdevās apstrādāt pieprasījumu, jo openvpn savienojuma tips bija nederīgs." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Nepastrādāta gaidoša autentifikācija." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Neiziet, kad tiek pārtraukts VPN savienojums" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Aktivēt detalizētu atkļūdošanas reģistrēšanu (var atklāt paroles)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "nm-openvpn-service nodrošina NetworkManager integrētu OpenVPN iespēju." + +#~ msgid "Use a TA_P device" +#~ msgstr "Lietot TA_P iekārtu" + +#~ msgid "No VPN secrets!" +#~ msgstr "Nav VPN noslēpumu!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "Neizdevās apstrādāt pieprasījumu, jo netika dots lietotāja vārds." + +#~ msgid "_Password:" +#~ msgstr "_Parole:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Sekundārā parole:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "Rādīt par_oles" + +#~ msgid "_Username:" +#~ msgstr "_Lietotājvārds:" + +#~ msgid "_Domain:" +#~ msgstr "_Domēns:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Savienoties _anonīmi" + +#~ msgid "Connect as _user:" +#~ msgstr "Savienoties kā _lietotājam:" + +#~ msgid "_Remember password for this session" +#~ msgstr "Atce_rēties paroli šai sesijai" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Saglabāt paroli saišķī" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Tiks izveidots OpenVPN savienojums:" + +#~ msgid "Name: %s" +#~ msgstr "Vārds: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Savienojuma tips: X.509 sertifikāti" + +#~ msgid "CA: %s" +#~ msgstr "Sertificēšanas institūcija (CA): %s" + +#~ msgid "Cert: %s" +#~ msgstr "Sertif.: %s" + +#~ msgid "Key: %s" +#~ msgstr "Atslēga: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Savienojuma tips: kopīgā atslēga" + +#~ msgid "Shared Key: %s" +#~ msgstr "Kopīgā atslēga: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "Attālinātā IP adrese: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Savienojuma tips: parole" + +#~ msgid "Username: %s" +#~ msgstr "Lietotājvārds: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Savienojuma tips: X.509 ar paroles autentificēšanu" + +#~ msgid "Remote: %s" +#~ msgstr "Attālinātais: %s" + +#~ msgid "Device: %s" +#~ msgstr "Iekārta: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protokols: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Maršruti: %s" + +#~ msgid "Use LZO Compression: %s" +#~ msgstr "Lietot LZO kompresiju: %s" + +#~ msgid "Yes" +#~ msgstr "Jā" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS autentificēšana: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Savienojuma īpašības var mainīt, lietojot \"Labot\" pogu." + +#~ msgid "Cannot import settings" +#~ msgstr "Nav iespējams importēt iestatījumus" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "VPN iestatījumu datne '%s' nesatur derīgus datus." + +#~ msgid "Select file to import" +#~ msgstr "Izvēlieties datni importam" + +#~ msgid "Select CA to use" +#~ msgstr "Izvēlieties savienojuma CA" + +#~ msgid "Select certificate to use" +#~ msgstr "Izvēlieties savienojuma sertifikātu" + +#~ msgid "Select key to use" +#~ msgstr "Izvēlieties savienojuma atslēgu" + +#~ msgid "Select shared key to use" +#~ msgstr "Izvēlieties savienojuma kopīgo atslēgu" + +#~ msgid "Select TA to use" +#~ msgstr "Izvēlieties savienojuma TA atslēgu" + +#~ msgid "Save as..." +#~ msgstr "Saglabāt kā..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Datne \"%s\" jau eksistē." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Vai vēlaties aizvietot to ar pašreiz saglabājamo?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Neizdevās eksportēt konfigurāciju" + +#~ msgid "Failed to save file %s" +#~ msgstr "Neizdevās saglabāt datni %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "piemērs: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "C_A datne:" + +#~ msgid "Connection na_me:" +#~ msgstr "Savienoju_ma nosaukums:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Importēt _saglabāto konfigurāciju..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Nosaukums savienojumam ar privāto tīklu, piem. \"Universitātes VPN\" or " +#~ "\"Korporatīvais tīkls\"" + +#~ msgid "Network" +#~ msgstr "Tīkls" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "Lietot VPN savienojumu tikai šīm adresēm:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Lūdzu, zemāk ievadiet no jūsu sistēmas administratora saņemto " +#~ "informāciju. Paroli šeit neievadiet, tā tiks pieprasīta savienojoties." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Ņemiet vērā, ka importējamā datne nav OpenVPN konfigurācijas datne. " +#~ "Konfigurācijas datni jautājiet sistēmas administratoram." + +#~ msgid "Shared _key:" +#~ msgstr "_Kopējā atslēga:" + +#~ msgid "TLS-Auth" +#~ msgstr "TLS-autentifikācija" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Lietot _TLS autentifikāciju:" + +#~ msgid "Use cip_her:" +#~ msgstr "Lietot ši_fru:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 sertifikāts\n" +#~ "Koplietojamā atslēga\n" +#~ "Paroles autentifikācija\n" +#~ "X.509 ar paroles autentifikāciju" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "_Vārtejas adrese:" + +#~ msgid "_Key:" +#~ msgstr "_Atslēga:" + +#~ msgid "_Local IP:" +#~ msgstr "_Lokālā IP adrese:" + +#~ msgid "_none" +#~ msgstr "_nekas" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "The VPN login failed because the VPN program could not be started." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." + +#~ msgid "VPN connection failed" +#~ msgstr "VPN connection failed" + +#~ msgid "Connection Name" +#~ msgstr "Connection Name" + +#~ msgid "Optional Information" +#~ msgstr "Optional Information" + +#~ msgid "CA file:" +#~ msgstr "CA file:" + +#~ msgid "X.509" +#~ msgstr "X.509" diff --git a/po/mk.po b/po/mk.po new file mode 100644 index 0000000..215703b --- /dev/null +++ b/po/mk.po @@ -0,0 +1,1049 @@ +# translation of NetworkManager-openvpn.HEAD.po to Macedonian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Jovan Naumovski , 2007. +# Arangel Angov , 2007. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2007-12-02 18:53+0100\n" +"Last-Translator: Arangel Angov \n" +"Language-Team: Macedonian \n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Потврди автентичност за виртуелна приватна мрежа" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_Лозинка:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Лозинка на сертификат:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Потврди автентичност за виртуелна приватна мрежа" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Лозин_ка на сертификат:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Треба да ја потврдите автентичноста за да пристапите кон виртуелната " +"приватна мрежа „%s“." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "Менаџер за VPN врски (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Додавајте, отстранувајте и уредувајте VPN врски" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +#, fuzzy +msgid "Default" +msgstr "(Стандардна: 1194)" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "OpenVPN клиент" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "OpenVPN клиент" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "С_ертификат:" + +#: ../properties/nm-openvpn.c:380 +#, fuzzy +msgid "Password" +msgstr "_Лозинка:" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Конфигурација на OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "_Порта на премин:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_Лозинка:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "Лозинка на сертификат:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "С_ертификат:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "С_ертификат:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "_Корисничко име:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "_Оддалечена IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "Локална IP: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Насока:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +#, fuzzy +msgid "Ad_vanced..." +msgstr "На_предно" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Напредни опции за OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "_Порта на премин:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "Користи L_ZO компресија" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "Користи LZO компресија: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "Користи _TCP врска" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "Шифра: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "Насока:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "Потврди автентичност за виртуелна приватна мрежа" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "Порта: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "_Корисничко име:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_Лозинка:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_Лозинка:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "Конфигурација на OpenVPN" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "Ти_п на врска:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +msgid "Unknown connection type '%s'." +msgstr "Ти_п на врска:" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Втора лозинка:" + +#~ msgid "_Domain:" +#~ msgstr "_Домен:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Поврзи се _анонимно" + +#~ msgid "Connect as _user:" +#~ msgstr "Поврзи се како _корисник:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Запамети ја лозинката за оваа сесија" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Зачувај ја лозинката во приврзок" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Следната OpenVPN врска ќе биде креирана:" + +#~ msgid "Name: %s" +#~ msgstr "Име: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Тип на врска: X.509 сертификати" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Серт.: %s" + +#~ msgid "Key: %s" +#~ msgstr "Клуч: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Тип на врска: Споделен клуч" + +#~ msgid "Shared Key: %s" +#~ msgstr "Споделен клуч: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "Оддалечена IP: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Тип на врска: лозинка" + +#~ msgid "Username: %s" +#~ msgstr "Корисничко име: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Тип на врска: X.509 со автентикација на лозинка" + +#~ msgid "Remote: %s" +#~ msgstr "Оддалечено: %s" + +#~ msgid "Device: %s" +#~ msgstr "Уред: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Протокол: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Рутирања: %s" + +#~ msgid "Yes" +#~ msgstr "Да" + +#~ msgid "No" +#~ msgstr "Не" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "TLS авт.: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "" +#~ "Деталите за врската можат да се променат со користење на копчето \"Уреди" +#~ "\"." + +#~ msgid "Cannot import settings" +#~ msgstr "Не можам да ги увезам поставувањата" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "Датотеката со VPN поставувања '%s' не содржи валидни податоци." + +#~ msgid "Select file to import" +#~ msgstr "Изберете датотека за увоз" + +#~ msgid "Select CA to use" +#~ msgstr "Одберете сертификат кој ќе се употребува" + +#~ msgid "Select certificate to use" +#~ msgstr "Одберете сертификат кој ќе се употребува" + +#~ msgid "Select key to use" +#~ msgstr "Одберете клуч кој ќе се употребува" + +#~ msgid "Select shared key to use" +#~ msgstr "Одберете споделен клуч кој ќе се употребува" + +#~ msgid "Select TA to use" +#~ msgstr "Одберте TA кое ќе се употребува" + +#~ msgid "Save as..." +#~ msgstr "Зачувај како..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Датотеката со името \"%s\" веќе постои." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Дали сакате да ја замените со онаа која ја зачувувате?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Не успеав да ја извезам конфигурацијата" + +#~ msgid "Failed to save file %s" +#~ msgstr "Не можам да ја зачувам датотеката %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "пример: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "C_A датотека:" + +#~ msgid "Connection na_me:" +#~ msgstr "Тип на вр_ска:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Увези _зачувана конфигурација..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Име кое ќе се користи за идентификација на врската до приватната мрежа, " +#~ "на пр. \"VPN на универзитетот\" или \"Мрежа на здружението\"" + +#~ msgid "Network" +#~ msgstr "Мрежа" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "Користи _VPN врски само за овие адреси:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Ве молам, внесете ги информациите добиени од Вашиот администратор на " +#~ "системот. Не ја внесувајте Вашата лозинка овде, бидејќи ќе Ви биде " +#~ "побарана при поврзување." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Забележете дека датотеката која ја увезувате не е OpenVPN конфигурациска " +#~ "датотека. Датотеката побарајте ја кај Вашиот администратор на системот." + +#~ msgid "Shared _key:" +#~ msgstr "Споделен _клуч:" + +#~ msgid "TLS-Auth" +#~ msgstr "TLS проверка" + +#~ msgid "Use TA_P device" +#~ msgstr "Користи TA_P уред" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Користи _TLS авторизација:" + +#~ msgid "Use cip_her:" +#~ msgstr "Користи cip_her:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "X.509 сертификати\n" +#~ "Однапред споделен клуч\n" +#~ "Автентикација на лозинка\n" +#~ "X.509 со автентикација на лозинка" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "_Адреса за премин:" + +#~ msgid "_Key:" +#~ msgstr "_Клуч:" + +#~ msgid "_Local IP:" +#~ msgstr "_Локална IP:" + +#~ msgid "_none" +#~ msgstr "_ништо" diff --git a/po/mr.po b/po/mr.po new file mode 100644 index 0000000..bb88a38 --- /dev/null +++ b/po/mr.po @@ -0,0 +1,852 @@ +# translation of network-manager-openvpn.master.mr.po to marathi +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Sandeep Shedmake , 2009. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn.master.mr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-06-09 14:53+0530\n" +"Last-Translator: Sandeep Shedmake \n" +"Language-Team: marathi\n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN करीता ओळख पटवा" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "परवलीचा शब्द:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "प्रमाणपत्र परवलीचा शब्द:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN करीता ओळख पटवा" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "प्रमाणपत्र परवलीचा शब्द (_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Virtual Private Network '%s' करीता प्रवेशसाठी तुम्हाला ओळख पटवावी लागेल." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "खाजगी प्रमाणपत्र निवडा..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "वैयक्तिक कि निवडा..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Certificate Authority प्रमाणपत्र निवडा..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN स्टॅटीक कि निवडा..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "काहिच नाही" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM प्रमाणपत्रं (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM प्रमाणपत्रं (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN स्टॅटीक किज (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "मुलभूत" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN सर्वरशी सहत्व." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "प्रमाणपत्रं (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "परवलीचा शब्द" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "प्रमाणपत्र सह परवलीचा शब्द (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Static Key" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "सर्वसाधारण" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "गेटवे (_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "ओळख पटवा" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "परवलीचा शब्द दाखवा" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "वैयक्तिक कि निवडा..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "वैयक्तिक कि परवलीचा शब्द:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "वैयक्तिक कि:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA प्रमाणपत्र:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "वापरकर्ता प्रमाणपत्र:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "वापरकर्ता नाव:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "दूरस्थ IP पत्ता:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "स्थानीय IP पत्ता:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "कि दिशा:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "स्टॅटीक कि:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"कि दिशा वापरल्यास, ते VPN सम गटाच्या विरूद्ध वापरलेले असायला हवे. उदाहरणार्थ, सम " +"गटाच्य विरूद्ध '1' चा वापर केल्यास, जुळवणीने '0' वापरायला हवे. कुठले मुल्य वापरायचे हे " +"निश्चित नसल्यास, तुमच्या प्रणाली प्रशासकाशी संपर्क करा." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "प्रकार:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS ओळख पटवा" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "प्रगत (_v)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN प्रगत पर्याय" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "स्वपसंत गेटवे पोर्ट वापरा (_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "LZO माहिती संकोचन वापरा (_Z)" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "TCP जुळवणीचा वापरा (_T)" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "सर्वसाधारण" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "सिफर:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC ओळख पटवा:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "सुरक्षा" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "अगाऊ TLS ओळख पटवा वापरा" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "अगाऊ TLS ओळख पटवा वापरा" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "कि दिशा:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"कि दिशा वापरल्यास, ते VPN सम गटाच्या विरूद्ध वापरलेले असायला हवे. उदाहरणार्थ, सम " +"गटाच्य विरूद्ध '1' चा वापर केल्यास, जुळवणीने '0' वापरायला हवे. कुठले मुल्य वापरायचे हे " +"निश्चित नसल्यास, तुमच्या प्रणाली प्रशासकाशी संपर्क करा." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "कि फाइल:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS ओळख पटवा" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "दूरस्थ IP पत्ता:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "वापरकर्ता नाव (_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "परवलीचा शब्द:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "परवलीचा शब्द दाखवा" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "वैयक्तिक कि परवलीचा शब्द:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "अगाऊ TLS ओळख पटवा वापरा" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "परवलीचा शब्द (_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "दुय्यम परवलीचा शब्द (_S):" + +#~ msgid "_Domain:" +#~ msgstr "क्षेत्र (_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "निनावी नुरूप जुळवा (_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "वापरकर्ता नुरूप जुळवा (_u):" + +#~ msgid "_Remember password for this session" +#~ msgstr "या सत्र करीता परवलीचा शब्द लक्षात ठेवा (_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "किरींग अंतर्गत परवलीचा शब्द साठवा (_S)" + +#~ msgid "Use a TA_P device" +#~ msgstr "TAP साधनाचा वापरा (_P)" diff --git a/po/nb.po b/po/nb.po new file mode 100644 index 0000000..2016f98 --- /dev/null +++ b/po/nb.po @@ -0,0 +1,825 @@ +# Norwegian bokmål translation of network-manager-openvpn. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Kjartan Maraas , 2007,2012. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2012-11-06 07:25+0100\n" +"Last-Translator: Kjartan Maraas \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Autentiser VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Passord:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Passord for sertifikat:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentiser VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Pass_ord for sertifikat:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Du må autentisere deg for å få tilgang til virtuelt privat nettverk «%s»." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Velg ditt personlige sertifikat …" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Velg din private nøkkel …" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Lagret" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Alltid spør" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Ikke nødvendig" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Velg et sertifikat fra en sertifikatmyndighet …" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Velg en statisk nøkkel for OpenVPN …" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Ingen" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM- eller PKCS#12-sertifikater (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM-sertifikater (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statiske nøkler for OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Forvalg" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Ikke nødvendig" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibel med OpenVPN-tjeneren." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Sertifikater (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Passord:" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Passord med sertifikater (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Statisk nøkkel" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Kunne ikke finne binærfilen til openvpn." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Ingen konfigurasjonsalternativer for VPN." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Generelt" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Portner:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Vis passord" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Passord for privat nøkkel" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Passord for privat nøkkel:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Privat nøkkel:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA-sertifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Brukersertifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Brukernavn:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Ekstern IP-adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Lokal IP-adresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Nøkkelretning:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Statisk nøkkel:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Type:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Velg en autentiseringmetode." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_vansert …" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Avanserte alternativer for OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Bruk egendefinert p_ort for gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Bruk L_ZO-datakomprimering" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Bruk en _TCP-tilkobling" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Bruk egendefinert _fragmentstørrelse for UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Generelt" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Cipher:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC-autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Sikkerhet" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Emnesøk:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Koble kun til tjenere hvis sertifikat passer oppgitt emne.\n" +"Eksempel: /CN=mittvpn.firma.no" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Bruk ekstra TLS-autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Bruk et ekstra lag med HMAC-autentisering." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Nøkkelretning:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Nøkkelfil:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS-autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Type proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Tjeneradresse:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Brukernavn for proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Passord for proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Vis passord" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Proxyer" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "ugyldig adresse «%s»" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Ingen konfigurasjonsalternativer for VPN." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Passord for privat nøkkel:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Kunne ikke finne binærfilen til openvpn." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Ugyldig HMAC-autentisering." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Ugyldig tilkoblingstype." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Ugyldig portnummer «%s»." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Ugyldig proxytype «%s»." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Ugyldig proxytype «%s»." + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "Ugyldig fragmentstørrelse «%s»." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Ugyldig TUN MTU-størrelse «%s»." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Ugyldig fragmentstørrelse «%s»." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Ukjent tilkoblingstype «%s»." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Velg en autentiseringmetode." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Ikke avslutt når VPN-tilkobling termineres" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Passord:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Sekundært passord:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "Vis pass_ord" + +#~ msgid "Use a TA_P device" +#~ msgstr "Bruk en TA_P-enhet" + +#~ msgid "No VPN secrets!" +#~ msgstr "Ingen VPN-hemmeligheter!" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..1342dd8 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,704 @@ +# Dutch translation of NetworkManager-vpnc +# +# This file is distributed under the same license as the NetworkManager +# package. +# +# Tino Meinen , 2006, 2007. +# Wouter Bolsterlee , 2008, 2011. +# Rachid BM , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-vpnc\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-12-03 20:52+0100\n" +"PO-Revision-Date: 2011-12-03 20:55+0100\n" +"Last-Translator: Wouter Bolsterlee \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../auth-dialog/vpn-password-dialog.c:95 +msgid "_Password:" +msgstr "_Wachtwoord:" + +#: ../auth-dialog/vpn-password-dialog.c:97 +msgid "_Secondary Password:" +msgstr "_Secondair wachtwoord:" + +#: ../auth-dialog/vpn-password-dialog.c:239 +msgid "Sh_ow passwords" +msgstr "Wachtw_oorden tonen" + +# eigenlijk: moet er een aanmeldingscontrole worden uitgevoerd, +# maar het gaat erom dat er een wachtwoord moet worden gegeven +#: ../auth-dialog/main.c:133 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"U moet zich aanmelden om toegang te krijgen tot het Virtual Private Network " +"‘%s’." + +#: ../auth-dialog/main.c:134 +msgid "Authenticate VPN" +msgstr "VPN aanmeldingscontrole" + +#: ../auth-dialog/main.c:140 +msgid "Certificate pass_word:" +msgstr "Certificaat_wachtwoord:" + +#: ../auth-dialog/main.c:154 +msgid "Certificate password:" +msgstr "Certificaatwachtwoord:" + +#: ../properties/auth-helpers.c:148 +msgid "Choose your personal certificate..." +msgstr "Kies uw persoonlijke certificaat…" + +#: ../properties/auth-helpers.c:166 +msgid "Choose your private key..." +msgstr "Kies uw privé-sleutel…" + +#: ../properties/auth-helpers.c:238 +msgid "Saved" +msgstr "Opgeslagen" + +#: ../properties/auth-helpers.c:246 +msgid "Always Ask" +msgstr "Altijd vragen" + +#: ../properties/auth-helpers.c:251 +msgid "Not Required" +msgstr "Niet vereist" + +#: ../properties/auth-helpers.c:341 +msgid "Choose a Certificate Authority certificate..." +msgstr "Certificaat van certificaat-autoriteit (CA) kiezen…" + +#: ../properties/auth-helpers.c:385 +msgid "Choose an OpenVPN static key..." +msgstr "Statische OpenVPN-sleutel kiezen…" + +#: ../properties/auth-helpers.c:409 ../properties/auth-helpers.c:1169 +#: ../properties/auth-helpers.c:1571 +msgid "None" +msgstr "Geen" + +#: ../properties/auth-helpers.c:865 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM- of PKCS#12-certificaten (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:866 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM-certificaten (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:926 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statische OpenVPN-sleutels (*.key)" + +#: ../properties/auth-helpers.c:1085 ../properties/auth-helpers.c:1161 +msgid "Default" +msgstr "Standaard" + +#: ../properties/auth-helpers.c:1171 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1173 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1175 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1177 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1179 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1181 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1183 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1185 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1360 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Not required" + +#: ../properties/auth-helpers.c:1362 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1364 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Geschikt voor OpenVPN-servers." + +#: ../properties/nm-openvpn.c:317 +msgid "Certificates (TLS)" +msgstr "Certificaten (TLS)" + +#: ../properties/nm-openvpn.c:328 +msgid "Password" +msgstr "Wachtwoord" + +#: ../properties/nm-openvpn.c:341 +msgid "Password with Certificates (TLS)" +msgstr "Wachtwoord met certificaten (TLS)" + +#: ../properties/nm-openvpn.c:353 +msgid "Static Key" +msgstr "Vaste sleutel" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "Authentication" +msgstr "Authenticatie" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "General" +msgstr "Algemeen" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Alleen verbinden met server waarvan het certificaat overeenkomt met het " +"gegeven onderwerp.\n" +"Bijvoorbeeld: /CN=vpn.example.org" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator." +msgstr "" +"Als een sleutelrichting wordt gebruikt, moet deze tegenovergesteld zijn " +"dan die van de VPN-peer. Bijvoorbeeld: als de andere machine ‘1’ gebruikt, " +"moet deze verbinding ‘0’ gebruiken. Neem contact op met uw systeembeheerder " +"als u niet weet welke waarde te gebruiken." + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Gebruik deze optie als uw organisatie een proxy-server gebruikt voor " +"Internet-toegang." + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Ad_vanced..." +msgstr "_Geavanceerd…" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth " +"[direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Add an additional layer of HMAC authentication." +msgstr "Extra layer met HMAC-authenticatie gebruiken" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "CA Certificate:" +msgstr "CA-certificaat:" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "Ci_pher:" +msgstr "Vercijfering:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-" +"proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-" +"proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"config: static " +" [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Direction parameter for static key mode.\n" +"config: tls-auth " +"[direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: " +"fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "General" +msgstr "Algemeen" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "_HMAC Authentication:" +msgstr "HMAC-authenticatie:" + +#: ../properties/nm-openvpn-dialog.ui.h:24 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:26 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Key _Direction:" +msgstr "Sleutelrichting:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "Key _File:" +msgstr "Sleutelbestand:" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Local IP Address:" +msgstr "Lokaal IP-adres:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Geavanceerde opties voor OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Password for private key" +msgstr "Wachtwoord voor privé-sleutel…" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Password:" +msgstr "Wachtwoord:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "_Port:" +msgstr "Poort:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +"" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Private Key Password:" +msgstr "Wachtwoord van privésleutel:" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Private Key:" +msgstr "Privé-sleutel:" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "Proxies" +msgstr "Proxies" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Proxy Passwor_d:" +msgstr "Proxy-wachtwoord:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "Proxy _Type:" +msgstr "Proxy-type:" + +#: ../properties/nm-openvpn-dialog.ui.h:45 +msgid "Proxy _Username:" +msgstr "_Gebruikersnaam voor proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "Remote IP Address:" +msgstr "IP-adres op afstand:" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "" +"Remote host name or IP address.\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Maximale TCP segmentgrootte (MSS) van tunnel beperken" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Retry indefinitely when errors occur" +msgstr "Voor onbepaalde tijd herhalen wanneer er fouten optreden" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "Security" +msgstr "Beveiliging" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Select an authentication mode." +msgstr "Authenticatie-methode kiezen" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Server _Address:" +msgstr "Serveradres:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "_Show password" +msgstr "Wachtwoord tonen" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "_Show passwords" +msgstr "Wachtwoorden tonen" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "Static Key:" +msgstr "Vaste sleutel:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "_Subject Match:" +msgstr "Overeenkomst met onderwerp:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "TLS Authentication" +msgstr "TLS-authenticatie" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "Type:" +msgstr "Type:" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use L_ZO data compression" +msgstr "_LZO-datacompressie gebruiken" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Use TAP virtual network device instead of TUN.\n" +"config: dev tap | tun" +msgstr "" +"Virtueel TAP-netwerkapparaat gebruiken in plaats van TUN\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | " +"udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Use a TA_P device" +msgstr "T_AP-apparaat gebruiken" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Use a _TCP connection" +msgstr "_TCP-verbinding gebruiken" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "Use additional _TLS authentication" +msgstr "Extra TLS-authenticatie gebruiken" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Use custom UDP _fragment size:" +msgstr "Aangepaste UDP-fragmentgrootte gebruiken:" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Use custom _renegotiation interval:" +msgstr "Aangepast interval voor _heronderhandeling gebruiken:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Aangepaste MTU (maximale transmissie-eenheid) voor de _tunnel gebruiken:" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "Use custom gateway p_ort:" +msgstr "Aangepaste gateway-_poort:" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Snelle LZO-compressie gebruiken.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "User Certificate:" +msgstr "Gebruikerscertificaat:" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "User name:" +msgstr "Gebruikersnaam:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Gebruikersnaam voor OpenVPN wanneer daar om gevraagd wordt.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../src/nm-openvpn-service.c:192 +#, c-format +msgid "invalid address '%s'" +msgstr "ongeldig adres ‘%s’" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "eigenschap ‘%s’ is geen geheel getal of buiten bereik [%d → %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:215 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "ongeldige booleaanse waarde voor eigenschap ‘%s’ (geen ‘yes’ of ‘no’)" + +#: ../src/nm-openvpn-service.c:222 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "niet-afgehandelde eigenschap ‘%s’ type %s" + +#: ../src/nm-openvpn-service.c:233 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "eigenschap ‘%s’ is ongeldig of wordt niet ondersteund" + +#: ../src/nm-openvpn-service.c:250 +msgid "No VPN configuration options." +msgstr "Geen VPN-configuratieopties" + +#: ../src/nm-openvpn-service.c:273 +msgid "No VPN secrets!" +msgstr "Geen VPN-geheimen!" + +#: ../src/nm-openvpn-service.c:746 +msgid "Could not find the openvpn binary." +msgstr "Kon de binary ‘openvpn’ niet vinden." + +#: ../src/nm-openvpn-service.c:757 +msgid "Invalid HMAC auth." +msgstr "Ongeldige HMAC-auth." + +#: ../src/nm-openvpn-service.c:769 ../src/nm-openvpn-service.c:1165 +#: ../src/nm-openvpn-service.c:1235 +msgid "Invalid connection type." +msgstr "Ongeldig verbindingstype." + +#: ../src/nm-openvpn-service.c:804 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Ongeldig proxy-type ‘%s’." + +#: ../src/nm-openvpn-service.c:840 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Ongeldig poortnummer ‘%s’." + +#: ../src/nm-openvpn-service.c:890 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Ongeldige (heronderhandelings)seconden ‘%s’." + +#: ../src/nm-openvpn-service.c:914 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Ongeldige TUN MTU-grootte ‘%s’." + +#: ../src/nm-openvpn-service.c:929 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Ongeldige fragmentgrootte ‘%s’." + +#: ../src/nm-openvpn-service.c:997 +msgid "Missing required local IP address for static key mode." +msgstr "Het lokale IP-adres voor statische sleutelmodus ontbreekt." + +#: ../src/nm-openvpn-service.c:1010 +msgid "Missing required remote IP address for static key mode." +msgstr "Het IP-adres op afstand voor statische sleutelmodus ontbreekt." + +#: ../src/nm-openvpn-service.c:1035 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Onbekend verbindingstype ‘%s’." + +#: ../src/nm-openvpn-service.c:1154 ../src/nm-openvpn-service.c:1225 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"De aanvraag kon niet in behandeling genomen worden, omdat de " +"verbindingsinstellingen van het VPN ongeldig waren." + +#: ../src/nm-openvpn-service.c:1179 +msgid "Could not process the request because no username was provided." +msgstr "" +"Aanmelding bij het VPN is mislukt omdat de verbindingsinstellingen van het " +"VPN ongeldig waren." + +#: ../src/nm-openvpn-service.c:1369 +msgid "Don't quit when VPN connection terminates" +msgstr "Niet afsluiten wanneer de VPN-verbinding verbroken wordt" + +#: ../src/nm-openvpn-service.c:1370 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Uitgebreide debug-logging inschakelen (kan wachtwoorden blootleggen)" + +#: ../src/nm-openvpn-service.c:1384 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service biedt geïntegreerde Cisco Legacy IPSec VPN-mogelijkheden aan " +"NetworkManager." + +#~ msgid "_Domain:" +#~ msgstr "_Domein:" + +#~ msgid "Connect _anonymously" +#~ msgstr "_Anoniem verbinden" + +#~ msgid "Connect as _user:" +#~ msgstr "Verbinden met _gebruikersnaam:" + +#, fuzzy +#~ msgid "_Remember password for this session" +#~ msgstr "W_achtwoorden voor deze sessie onthouden" + +#, fuzzy +#~ msgid "_Save password in keyring" +#~ msgstr "Wachtwoorden in _sleutelbos opslaan" diff --git a/po/pa.po b/po/pa.po new file mode 100644 index 0000000..a0036e9 --- /dev/null +++ b/po/pa.po @@ -0,0 +1,759 @@ +# Punjabi translation of network-manager-openconnect. +# Copyright (C) 2009 network-manager-openconnect's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openconnect package. +# +# A S Alam , 2009, 2010, 2012. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openconnect master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2012-08-07 17:01+0000\n" +"PO-Revision-Date: 2012-08-19 15:58+0530\n" +"Last-Translator: A S Alam \n" +"Language-Team: Punjabi/Panjabi \n" +"Language: pa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: ../auth-dialog/vpn-password-dialog.c:95 +msgid "_Password:" +msgstr "ਪਾਸਵਰਡ(_P):" + +#: ../auth-dialog/vpn-password-dialog.c:97 +msgid "_Secondary Password:" +msgstr "ਸੈਕੰਡਰੀ ਪਾਸਵਰਡ(_S):" + +#: ../auth-dialog/vpn-password-dialog.c:239 +msgid "Sh_ow passwords" +msgstr "ਪਾਸਵਰਡ ਵੇਖੋ(_o)" + +#. In other_ui mode, we don't actually show the dialog. Instead we pass back everything +#. that is needed to build it +#: ../auth-dialog/main.c:158 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"ਤੁਹਾਨੂੰ ਵੁਰਚੁਅਲ ਪ੍ਰਾਈਵੇਟ ਨੈੱਟਵਰਕ (VPN) '%s' ਦੀ ਵਰਤੋਂ ਵਾਸਤੇ ਪਰਮਾਣਿਤ ਹੋਣ ਦੀ ਲੋੜ " +"ਹੈ।" + +#: ../auth-dialog/main.c:167 ../auth-dialog/main.c:191 +msgid "Authenticate VPN" +msgstr "ਪਰਮਾਣਿਤ VPN" + +#: ../auth-dialog/main.c:170 ../properties/nm-openvpn-dialog.ui.h:92 +msgid "Password:" +msgstr "ਪਾਸਵਰਡ:" + +#: ../auth-dialog/main.c:172 ../auth-dialog/main.c:210 +#| msgid "_CA Certificate:" +msgid "Certificate password:" +msgstr "ਸਰਟੀਫਿਕੇਟ ਪਾਸਵਰਡ:" + +#: ../auth-dialog/main.c:196 +#| msgid "_CA Certificate:" +msgid "Certificate pass_word:" +msgstr "ਸਰਟੀਫਿਕੇਟ ਪਾਸਵਰਡ(_w):" + +#: ../properties/auth-helpers.c:148 +msgid "Choose your personal certificate..." +msgstr "ਆਪਣਾ ਨਿੱਜੀ ਸਰਟੀਫਿਕੇਟ ਚੁਣੋ।" + +#: ../properties/auth-helpers.c:166 +msgid "Choose your private key..." +msgstr "ਆਪਣੀ ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਚੁਣੋ..." + +#: ../properties/auth-helpers.c:238 +msgid "Saved" +msgstr "ਸੰਭਾਲਿਆ" + +#: ../properties/auth-helpers.c:246 +msgid "Always Ask" +msgstr "ਹਮੇਸ਼ਾ ਪੁੱਛੋ" + +#: ../properties/auth-helpers.c:251 +msgid "Not Required" +msgstr "ਲੋੜੀਦਾ ਨਹੀਂ" + +#: ../properties/auth-helpers.c:341 +msgid "Choose a Certificate Authority certificate..." +msgstr "ਸਰਟੀਫਿਕੇਟ ਅਥਾਰਟੀ ਸਰਫੀਟਿਕੇਟ ਚੁਣੋ।" + +#: ../properties/auth-helpers.c:385 +#| msgid "Choose your private key..." +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN ਸਟੇਟਿਕ ਕੁੰਜੀ ਚੁਣੋ..." + +#: ../properties/auth-helpers.c:409 ../properties/auth-helpers.c:1170 +#: ../properties/auth-helpers.c:1578 +msgid "None" +msgstr "ਕੋਈ ਨਹੀਂ" + +#: ../properties/auth-helpers.c:865 +#| msgid "PEM certificates (*.pem, *.crt, *.key)" +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM ਜਾਂ PKCS#12 ਸਰਟੀਫਿਕੇਟ (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:866 +#| msgid "PEM certificates (*.pem, *.crt, *.key)" +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM ਸਰਟੀਫਿਕੇਟ (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:926 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN ਸਟੇਟਿਕ ਕੁੰਜੀਆਂ (*.key)" + +#: ../properties/auth-helpers.c:1086 ../properties/auth-helpers.c:1162 +msgid "Default" +msgstr "ਡਿਫਾਲਟ" + +#: ../properties/auth-helpers.c:1172 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1174 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1176 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1178 +msgid "SHA-224" +msgstr "SHA-੨੨੪" + +#: ../properties/auth-helpers.c:1180 +msgid "SHA-256" +msgstr "SHA-੨੫੬" + +#: ../properties/auth-helpers.c:1182 +msgid "SHA-384" +msgstr "SHA-੩੮੪" + +#: ../properties/auth-helpers.c:1184 +msgid "SHA-512" +msgstr "SHA-੫੧੨" + +#: ../properties/auth-helpers.c:1186 +msgid "RIPEMD-160" +msgstr "RIPEMD-੧੬੦" + +#: ../properties/auth-helpers.c:1361 ../properties/nm-openvpn-dialog.ui.h:2 +msgid "Not required" +msgstr "ਲੋੜੀਦਾ ਨਹੀਂ" + +#: ../properties/auth-helpers.c:1363 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1365 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN ਸਰਵਰ ਨਾਲ ਅਨੁਕੂਲ" + +#: ../properties/nm-openvpn.c:317 +#| msgid "Certificate (TLS)" +msgid "Certificates (TLS)" +msgstr "ਸਰਟੀਫਿਕੇਟ (TLS)" + +#: ../properties/nm-openvpn.c:328 +#| msgid "Password / SecurID" +msgid "Password" +msgstr "ਪਾਸਵਰਡ" + +#: ../properties/nm-openvpn.c:341 +#| msgid "Certificate (TLS)" +msgid "Password with Certificates (TLS)" +msgstr "ਸਰਟੀਫਿਕੇਟ (TLS) ਨਾਲ ਪਾਸਵਰਡ" + +#: ../properties/nm-openvpn.c:353 +msgid "Static Key" +msgstr "ਸਟੇਟਿਕ ਕੁੰਜੀ" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN ਮਾਹਰ ਚੋਣਾਂ" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Use custom gateway p_ort:" +msgstr "ਕਸਟਮ ਗੇਟਵੇ ਪੋਰਟ ਵਰਤੋਂ(_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "Use custom _renegotiation interval:" +msgstr "ਪਸੰਦੀਦਾ ਰੀਨੈਗੋਸ਼ੀਏਸ਼ਨ ਅੰਤਰਾਲ ਵਰਤੋਂ(_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Use L_ZO data compression" +msgstr "L_ZO ਡਾਟਾ ਕੰਪਰੈਸ਼ਨ ਵਰਤੋਂ" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Use a _TCP connection" +msgstr "_TCP ਕੁਨੈਕਸ਼ਨ ਵਰਤੋਂ" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "Use a TA_P device" +msgstr "TA_P ਜੰਤਰ ਵਰਤੋਂ" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Use TAP virtual network device instead of TUN.\n" +"config: dev tap | tun" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "Use custom UDP _fragment size:" +msgstr "ਪਸੰਦੀਦਾ ਰੀਨੈਗੋਸ਼ੀਏਸ਼ਨ ਅੰਤਰਾਲ ਵਰਤੋਂ(_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:26 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#| msgid "General" +msgid "General" +msgstr "ਆਮ" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "Ci_pher:" +msgstr "ਸੀਫ਼ਰ(_p):" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "_HMAC Authentication:" +msgstr "_HMAC ਪਰਮਾਣਕਿਤਾ:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Security" +msgstr "ਸੁਰੱਖਿਆ" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "_Subject Match:" +msgstr "ਵਿਸ਼ਾ ਮੇਲ(_S):" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"ਕੇਵਲ ਸਰਵਰਾਂ ਨਾਲ ਕੁਨੈਕਟ ਕਰੋ, ਜਿਸ ਦੇ ਸਰਟੀਫਿਕੇਟ ਨਾਲ ਦਿੱਤਾ ਵਿਸ਼ਾ ਮਿਲਦਾ ਹੋਵੇ।\n" +"ਜਿਵੇਂ: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:45 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator." +msgstr "" +"ਜੇ ਕੁੰਜੀ ਦਿਸ਼ਾ ਵਰਤੀ ਗਈ ਤਾਂ ਇਹ VPN ਪੀਅਰ ਲਈ ਵਰਤੋਂ ਦੇ ਉਲਟ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। " +"ਜਿਵੇਂ ਕਿ, ਜੇ " +"ਪੀਅਰ '1' ਵਰਤਦਾ ਹੈ ਤਾਂ ਇਹ ਕੁਨੈਕਸ਼ਨ '0' ਵਰਤਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਸ ਦੇ " +"ਮੁੱਲ ਵਰਤਣ ਬਾਰੇ " +"ਯਕੀਨੀ ਨਹੀਂ ਹੋ ਤਾਂ ਆਪਣੇ ਪਰਸ਼ਾਸ਼ਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Direction parameter for static key mode.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Key _File:" +msgstr "ਕੁੰਜੀ ਫਾਇਲ(_F):" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "TLS Authentication" +msgstr "TLS ਪਰਮਾਣਕਿਤਾ" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +#| msgid "_Proxy:" +msgid "Proxy _Type:" +msgstr "ਪਰਾਕਸੀ ਕਿਸਮ(_t):" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"ਇਹ ਚੋਣ ਕਰੋ, ਜੇ ਤੁਹਾਡੇ ਸੰਗਠਨ ਵਿੱਚ ਇੰਟਰਨੈੱਟ ਵਰਤਣ ਲਈ ਪਰਾਕਸੀ ਸਰਵਰ ਵਰਤਣ ਦੀ " +"ਲੋੜ ਹੈ।" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "Server _Address:" +msgstr "ਸਰਵਰ ਐਡਰੈੱਸ(_A):" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "_Port:" +msgstr "ਪੋਰਟ(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +#| msgid "User name:" +msgid "Proxy _Username:" +msgstr "ਪਰਾਕਸੀ ਯੂਜ਼ਰ ਨਾਂ(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Proxy Passwor_d:" +msgstr "ਪਰਾਸਕੀ ਪਾਸਵਰਡ(_d):" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "_Show password" +msgstr "ਪਾਸਵਰਡ ਵੇਖੋ(_S)" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Proxies" +msgstr "ਪਰਾਕਸੀ" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "General" +msgstr "ਆਮ" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "_Gateway:" +msgstr "ਗੇਟਵੇ(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Remote host name or IP address. You can specify multiple items for " +"redundancy (use commas to separate the entries).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +#| msgid "Certificate Authentication" +msgid "Authentication" +msgstr "ਪਰਮਾਣਕਿਤਾ" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "_Show passwords" +msgstr "ਪਾਸਵਰਡ ਵੇਖੋ(_S)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +#| msgid "Choose your private key..." +msgid "Password for private key" +msgstr "ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਲਈ ਪਾਸਵਰਡ" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +#| msgid "Private _Key:" +msgid "Private Key Password:" +msgstr "ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ ਪਾਸਵਰਡ:" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +#| msgid "Private _Key:" +msgid "Private Key:" +msgstr "ਪ੍ਰਾਈਵੇਟ ਕੁੰਜੀ:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +#| msgid "_CA Certificate:" +msgid "CA Certificate:" +msgstr "CA ਸਰਟੀਫਕੇਟ:" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +#| msgid "_User Certificate:" +msgid "User Certificate:" +msgstr "ਯੂਜ਼ਰ ਸਰਟੀਫਿਕੇਟ:" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"ਜਦੋਂ ਪੁੱਛਿਆ ਜਾਵੇ ਤਾਂ OpenVPN ਲਈ ਪਾਸਵਰਡ ਦਿਉ।\n" +"ਸੰਰਚਨਾ: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "User name:" +msgstr "ਯੂਜ਼ਰ ਨਾਂ:" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"ਜਦੋਂ ਪੁੱਛਿਆ ਜਾਵੇ ਤਾਂ OpenVPN ਲਈ ਯੂਜ਼ਰ-ਨਾਂ ਦਿਉ।\n" +"ਸੰਰਚਨਾ: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Remote IP Address:" +msgstr "ਰਿਮੋਟ IP ਐਡਰੈੱਸ:" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "Local IP Address:" +msgstr "ਲੋਕਲ IP ਐਡਰੈੱਸ:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"ਰਿਮੋਟ VPN ਐਂਡ-ਪੁਆਇੰਟ ਲਈ IP ਐਡਰੈਸ।\n" +"ਸੰਰਚਨਾ: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Key Direction:" +msgstr "ਕੁੰਜੀ ਦਿਸ਼ਾ:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Static Key:" +msgstr "ਸਟੇਟਿਕ ਕੁੰਜੀ:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "Type:" +msgstr "ਟਾਈਪ:" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Select an authentication mode." +msgstr "ਪਰਮਾਣਕਿਤਾ ਢੰਗ ਚੁਣੋ।" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "Ad_vanced..." +msgstr "...ਮਾਹਰ(_v)" + +#: ../src/nm-openvpn-service.c:193 +#, c-format +msgid "invalid address '%s'" +msgstr "ਗਲਤ ਐਡਰੈੱਸ '%s'" + +#: ../src/nm-openvpn-service.c:205 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "ਗਲਤ ਪੂਰਨ-ਅੰਕ ਵਿਸ਼ੇਸ਼ਤਾ '%s' ਜਾਂ [%d -> %d] ਹੱਦ ਤੋਂ ਬਾਹਰ" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "ਗਲਤ ਬੁਲੀਅਨ ਵਿਸ਼ੇਸ਼ਤਾ '%s' (ਹਾਂ ਜਾਂ ਨਹੀਂ ਨਹੀਂ)" + +#: ../src/nm-openvpn-service.c:223 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "ਨਾ-ਹੈਂਡਲ ਵਿਸ਼ੇਸ਼ਤਾ '%s' ਕਿਸਮ %s" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "ਵਿਸ਼ੇਸ਼ਤਾ '%s' ਗਲਤ ਹੈ ਜਾਂ ਸਹਾਇਕ ਨਹੀਂ ਹੈ" + +#: ../src/nm-openvpn-service.c:251 +msgid "No VPN configuration options." +msgstr "ਕੋਈ VPN ਸੰਰਚਨਾ ਚੋਣਾਂ ਨਹੀਂ।" + +#: ../src/nm-openvpn-service.c:274 +msgid "No VPN secrets!" +msgstr "ਕੋਈ VPN ਭੇਦ ਨਹੀਂ!" + +#: ../src/nm-openvpn-service.c:747 +#| msgid "Could not find openconnect binary." +msgid "Could not find the openvpn binary." +msgstr "openvpn ਬਾਈਨਰੀ ਨਹੀਂ ਲੱਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।" + +#: ../src/nm-openvpn-service.c:758 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:770 ../src/nm-openvpn-service.c:1176 +#: ../src/nm-openvpn-service.c:1246 +msgid "Invalid connection type." +msgstr "ਗਲਤ ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ ਹੈ।" + +#: ../src/nm-openvpn-service.c:815 +#, c-format +#| msgid "unhandled property '%s' type %s" +msgid "Invalid proxy type '%s'." +msgstr "ਗਲਤ ਪਰਾਕਸੀ ਕਿਸਮ '%s' ਹੈ।" + +#: ../src/nm-openvpn-service.c:851 +#, c-format +msgid "Invalid port number '%s'." +msgstr "ਗਲਤ ਪੋਰਟ ਨੰਬਰ '%s'।" + +#: ../src/nm-openvpn-service.c:901 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:925 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:940 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1008 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1021 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1046 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "ਅਣਜਾਣ ਕੁਨੈਕਸ਼ਨ ਕਿਸਮ '%s'" + +#: ../src/nm-openvpn-service.c:1165 ../src/nm-openvpn-service.c:1236 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1190 +msgid "Could not process the request because no username was provided." +msgstr "" + +#: ../src/nm-openvpn-service.c:1380 +msgid "Don't quit when VPN connection terminates" +msgstr "ਜਦੋਂ VPN ਕੁਨੈਕਸ਼ਨ ਖਤਮ ਹੋਵੇ ਤਾਂ ਬੰਦ ਨਾ ਕਰੋ" + +#: ../src/nm-openvpn-service.c:1381 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1395 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service NetworkManager ਲਈ ਵਿਚੇ-ਉਪਲੱਬਧ ਓਪਨਵੀਪੀਐਨ (OpenVPN) ਸਮੱਰਥਾ " +"ਦਿੰਦਾ ਹੈ।" + +#~ msgid "" +#~ "Certificate from VPN server \"%s\" failed verification.\n" +#~ "Reason: %s\n" +#~ "Do you want to accept it?" +#~ msgstr "" +#~ "VPN ਸਰਵਰ \"%s\" ਤੋਂ ਸਰਟੀਫਿਕੇਟ ਦੀ ਜਾਂਚ ਫੇਲ੍ਹ ਹੋਈ।\n" +#~ "ਕਾਰਨ: %s\n" +#~ "ਕੀ ਤੁਸੀਂ ਇਹ ਮਨਜ਼ੂਰ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?" + +#~ msgid "VPN host" +#~ msgstr "VPN ਹੋਸਟ" + +#~ msgid "Automatically start connecting next time" +#~ msgstr "ਅਗਲੀ ਵਾਰ ਆਪਣੇ-ਆਪ ਹੀ ਕੁਨੈਕਟ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰੋ" + +#~ msgid "Select a host to fetch the login form" +#~ msgstr "ਲਾਗ ਫਾਰਮ ਲੈਣ ਲਈ ਹੋਸਟ ਚੁਣੋ" + +#~ msgid "Contacting host, please wait..." +#~ msgstr "ਹੋਸਟ ਨਾਲ ਸੰਪਰਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, ਉਡੀਕੋ ਜੀ..." + +#~ msgid "_Login" +#~ msgstr "ਲਾਗਇਨ(_L)" + +#~ msgid "Log" +#~ msgstr "ਲਾਗ" + +#~ msgid "Cisco AnyConnect Compatible VPN (openconnect)" +#~ msgstr "Cisco ਐਨੀ-ਕੁਨੈਕਟ ਅਨੁਕੂਲ VPN (openconnect)" + +#~ msgid "Compatible with Cisco AnyConnect SSL VPN." +#~ msgstr "Cisco AnyConnect SSL VPN ਨਾਲ ਅਨੁਕੂਲ।" + +#~ msgid "Allow Cisco Secure Desktop _trojan" +#~ msgstr "ਸਿਸਕੋ ਸੁਰੱਖਿਅਤ ਡੈਸਕਟਾਪ ਟਰੋਜਨ ਮਨਜ਼ੂਰ(_t)" + +#~ msgid "CSD _Wrapper Script:" +#~ msgstr "CSD _Wrapper ਸਕ੍ਰਿਪਟ:" + +#~ msgid "Select A File" +#~ msgstr "ਫਾਇਲ ਚੁਣੋ" + +#~ msgid "Use _FSID for key passphrase" +#~ msgstr "ਕੁੰਜੀ ਪ੍ਹੈਰੇ ਲਈ _FSID ਵਰਤੋਂ" + +#~ msgid "No VPN gateway specified." +#~ msgstr "ਕੋਈ VPN ਗੇਟਵੇ ਦਿੱਤਾ ਗਿਆ ਹੈ।" + +#~ msgid "No WebVPN cookie provided." +#~ msgstr "ਕੋਈ WebVPN ਕੂਕੀਜ਼ ਨਹੀਂ ਦਿੱਤਾ।" + +#~ msgid "Certificate (TLS) with TPM" +#~ msgstr "TPM ਨਾਲ ਸਰਟੀਫਿਕੇਟ (TLS)" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..bc8e724 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,1367 @@ +# Polish translation for network-manager-openvpn. +# Copyright © 2008-2017 the network-manager-openvpn authors. +# This file is distributed under the same license as the network-manager-openvpn package. +# Tomasz Dominikowski , 2008-2009. +# Piotr Drąg , 2009-2017. +# Aviary.pl , 2008-2017. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-09-28 15:10+0200\n" +"PO-Revision-Date: 2017-09-28 15:11+0200\n" +"Last-Translator: Piotr Drąg \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2;\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Klient OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klient dla wirtualnych sieci prywatnych OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Obsługa konfigurowania połączeń wirtualnych sieci prywatnych OpenVPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "" +"OpenVPN to popularne i elastyczne oprogramowanie VPN na wolnej licencji." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Programiści projektu NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Uwierzytelnianie VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Password:" +msgstr "Hasło:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Hasło certyfikatu:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Hasło pośrednika HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Uwierzytelnianie VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Hasło _certyfikatu:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "_Hasło pośrednika HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Aby uzyskać dostęp do wirtualnej sieci prywatnej „%s”, należy się " +"uwierzytelnić." + +#: ../properties/auth-helpers.c:280 +msgid "Choose an OpenVPN static key…" +msgstr "Wybierz klucz statyczny OpenVPN…" + +#: ../properties/auth-helpers.c:304 ../properties/auth-helpers.c:967 +#: ../properties/auth-helpers.c:1732 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Brak" + +#: ../properties/auth-helpers.c:718 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Klucze statyczne OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:865 ../properties/auth-helpers.c:959 +msgid "Default" +msgstr "Domyślny" + +#: ../properties/auth-helpers.c:969 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:971 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:973 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:975 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:977 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:979 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:981 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:983 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1026 +msgid "Don’t verify certificate identification" +msgstr "Bez sprawdzania poprawności identyfikacji certyfikatu" + +#: ../properties/auth-helpers.c:1032 +msgid "Verify whole subject exactly" +msgstr "Dokładne sprawdzanie poprawności całego tematu" + +#: ../properties/auth-helpers.c:1038 +msgid "Verify name exactly" +msgstr "Dokładne sprawdzanie poprawności nazwy" + +#: ../properties/auth-helpers.c:1044 +msgid "Verify name by prefix" +msgstr "Sprawdzanie poprawności nazwy według przedrostka" + +#: ../properties/auth-helpers.c:1050 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "" +"Częściowe sprawdzanie poprawności tematu (tryb przestarzały, niezalecane)" + +#: ../properties/auth-helpers.c:1164 ../properties/auth-helpers.c:1235 +msgid "Server" +msgstr "Serwer" + +#: ../properties/auth-helpers.c:1169 ../properties/auth-helpers.c:1240 +msgid "Client" +msgstr "Klient" + +#: ../properties/auth-helpers.c:1533 ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Not required" +msgstr "Niewymagane" + +#: ../properties/auth-helpers.c:1535 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1537 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automatycznie)" + +#: ../properties/auth-helpers.c:1792 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1794 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "opcja %s oczekuje między %u a %u parametrem" +msgstr[1] "opcja %s oczekuje między %u a %u parametrami" +msgstr[2] "opcja %s oczekuje między %u a %u parametrami" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "opcja %s oczekuje zero parametrów" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "opcja %s oczekuje dokładnie jednego parametru" +msgstr[1] "opcja %s oczekuje dokładnie %u parametrów" +msgstr[2] "opcja %s oczekuje dokładnie %u parametrów" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "parametr %s „%s” nie może być pusty" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "parametr „%s” nie może być pusty" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "parametr %s „%s” musi być zakodowany w UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "parametr „%s” musi być zakodowany w UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "nieprawidłowy %u. parametr dla „%s”, oczekiwano numeru" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "nieobsługiwany %u. parametr %s dla „%s”" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"nieobsługiwany %u. parametr dla „%s”, który wygląda jak FQDN, ale " +"obsługiwane są tylko adresy IPv4" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "nieprawidłowy %u. parametr dla „%s”, oczekiwano adresu IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "nieprawidłowy %u. parametr „key-direction” dla „%s”" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "nieprawidłowy %u. parametr dla „%s”" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "niezakończony %s w położeniu %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "podwójny cudzysłów" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "pojedynczy cudzysłów" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "kończący sterujący wsteczny ukośnik w położeniu %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "nie można odczytać pliku uwierzytelniania pośrednika HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"nie można odczytać użytkownika/hasła z pliku uwierzytelniania pośrednika HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"użytkownik/hasło z pliku uwierzytelniania pośrednika HTTP musi być " +"zakodowane w UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s” nie jest katalogiem" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "nie można utworzyć katalogu „%s”" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "nie można zapisać „blob” <%s> z wiersza %ld do pliku (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "nie można zapisać „blob” <%s> z wiersza %ld do pliku „%s”" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "nieobsługiwany parametr „mtu-disc”" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1319 +#, c-format +msgid "invalid option" +msgstr "nieprawidłowa opcja" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nieobsługiwany parametr „comp-lzo”" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain space" +msgstr "parametr „remote” nie może zawierać spacji" + +#: ../properties/import-export.c:1087 +#, c-format +msgid "remote cannot contain comma" +msgstr "parametr „remote” nie może zawierać przecinków" + +#: ../properties/import-export.c:1098 +#, c-format +msgid "remote expects protocol type like “udp” or “tcp”" +msgstr "parametr „remote” oczekuje typu protokołu, takiego jak „udp” lub „tcp”" + +#: ../properties/import-export.c:1303 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "nieprawidłowy typ „verify-x509-name”" + +#: ../properties/import-export.c:1445 +#, c-format +msgid "unsupported blob/xml element" +msgstr "nieobsługiwany element „blob/xml”" + +#: ../properties/import-export.c:1474 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "niezakończony element „blob” <%s>" + +#: ../properties/import-export.c:1530 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "błąd konfiguracji: %s (wiersz %ld)" + +#: ../properties/import-export.c:1531 +msgid "unknown or unsupported option" +msgstr "nieznana lub nieobsługiwana opcja" + +#: ../properties/import-export.c:1546 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Importowany plik nie jest prawidłową konfiguracją klienta OpenVPN" + +#: ../properties/import-export.c:1554 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"Importowany plik nie jest prawidłową konfiguracją OpenVPN (brak „remote”)" + +#: ../properties/import-export.c:1786 +msgid "missing path argument" +msgstr "brak parametru ścieżki" + +#: ../properties/import-export.c:1796 +msgid "connection is not a valid OpenVPN connection" +msgstr "połączenie nie jest prawidłowym połączeniem OpenVPN" + +#: ../properties/import-export.c:1805 +msgid "connection was incomplete (missing gateway)" +msgstr "niepełne połączenie (brak bramy)" + +#: ../properties/import-export.c:2137 +#, c-format +msgid "failed to write file: %s" +msgstr "zapisanie pliku się nie powiodło: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Zgodny z serwerem OpenVPN." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "nieznane rozszerzenie pliku OpenVPN" + +#: ../properties/nm-openvpn-editor.c:278 +msgid "Certificates (TLS)" +msgstr "Certyfikaty (TLS)" + +#: ../properties/nm-openvpn-editor.c:289 +msgid "Password" +msgstr "Hasło" + +#: ../properties/nm-openvpn-editor.c:302 +msgid "Password with Certificates (TLS)" +msgstr "Hasło z certyfikatami (TLS)" + +#: ../properties/nm-openvpn-editor.c:314 +msgid "Static Key" +msgstr "Klucz statyczny" + +#: ../properties/nm-openvpn-editor.c:468 +msgid "could not create openvpn object" +msgstr "nie można utworzyć obiektu openvpn" + +#: ../properties/nm-openvpn-editor.c:485 +msgid "could not load UI widget" +msgstr "nie można wczytać widżetu interfejsu użytkownika" + +#: ../shared/nm-utils/nm-shared-utils.c:619 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "klasa obiektów „%s” nie ma właściwości o nazwie „%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:626 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "właściwość „%s” klasy obiektów „%s” nie jest zapisywalna" + +#: ../shared/nm-utils/nm-shared-utils.c:633 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"właściwość konstruktu „%s” dla obiektu „%s” nie może zostać ustawiona po " +"konstrukcji" + +#: ../shared/nm-utils/nm-shared-utils.c:641 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"„%s::%s” nie jest prawidłową nazwą właściwości; „%s” nie jest podtypem " +"GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:650 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "nie można ustawić właściwości „%s” typu „%s” z wartości typu „%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:661 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"wartość „%s” typu „%s” jest nieprawidłowa lub spoza zakresu dla właściwości " +"„%s” typu „%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "brak pliku wtyczki „%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "nie można wczytać wtyczki edytora: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "nie można wczytać generatora %s z wtyczki: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "nieznany błąd podczas tworzenia wystąpienia edytora" + +#: ../shared/utils.c:159 +#, c-format +msgid "invalid delimiter character '%c'" +msgstr "nieprawidłowy znak oddzielający „%c”" + +#: ../shared/utils.c:166 +#, c-format +msgid "invalid non-utf-8 character" +msgstr "nieprawidłowy znak niebędący UTF-8" + +#: ../shared/utils.c:194 +#, c-format +msgid "empty host" +msgstr "pusty komputer" + +#: ../shared/utils.c:204 +#, c-format +msgid "invalid port" +msgstr "nieprawidłowy port" + +#: ../shared/utils.c:215 +#, c-format +msgid "invalid protocol" +msgstr "nieprawidłowy protokół" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "nieprawidłowy adres „%s”" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "" +"nieprawidłowa właściwość liczby całkowitej „%s” lub jest poza zakresem [%d -" +"> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "" +"nieprawidłowa właściwość zmiennej logicznej „%s” (nie wynosi „yes” lub „no”)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "nieobsługiwana właściwość „%s” typu „%s”" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "właściwość „%s” jest nieprawidłowa lub nieobsługiwana" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Brak opcji konfiguracji VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Wymagana jest nazwa użytkownika." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Wymagane jest hasło." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Wymagana jest nazwa użytkownika i hasło." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Wymagane jest hasło klucza prywatnego." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Wymagana jest nazwa użytkownika pośrednika HTTP." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Wymagane jest hasło pośrednika HTTP." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Wymagana jest nazwa użytkownika i hasło pośrednika HTTP." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2065 +#: ../src/nm-openvpn-service.c:2099 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Nie można przetworzyć żądania, ponieważ ustawienia połączenia VPN są " +"nieprawidłowe." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2074 +msgid "Invalid connection type." +msgstr "Nieprawidłowy typ połączenia." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Nie można odnaleźć pliku binarnego openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Nieprawidłowe uwierzytelnienie HMAC." + +#: ../src/nm-openvpn-service.c:1357 ../src/nm-openvpn-service.c:1365 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Nieprawidłowy numer portu „%s”." + +#: ../src/nm-openvpn-service.c:1385 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Nieprawidłowy protokół „%s”." + +#: ../src/nm-openvpn-service.c:1427 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Nieprawidłowy typ pośrednika „%s”." + +#: ../src/nm-openvpn-service.c:1475 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Nieprawidłowy czas trwania ping „%s”." + +#: ../src/nm-openvpn-service.c:1488 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Nieprawidłowy czas trwania ping-exit „%s”." + +#: ../src/nm-openvpn-service.c:1501 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Nieprawidłowy czas trwania ping-restart „%s”." + +#: ../src/nm-openvpn-service.c:1520 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "nieprawidłowy parametr max-routes „%s”." + +#: ../src/nm-openvpn-service.c:1575 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Nieprawidłowy rozmiar klucza „%s”." + +#: ../src/nm-openvpn-service.c:1632 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Nieprawidłowa konfiguracja z „tls-remote” i „verify-x509-name”." + +#: ../src/nm-openvpn-service.c:1646 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Nieprawidłowe „verify-x509-name”." + +#: ../src/nm-openvpn-service.c:1680 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Nieprawidłowe sekundy renegocjacji „%s”." + +#: ../src/nm-openvpn-service.c:1712 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Nieprawidłowy rozmiar MTU TUN „%s”." + +#: ../src/nm-openvpn-service.c:1726 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Nieprawidłowy rozmiar fragmentu „%s”." + +#: ../src/nm-openvpn-service.c:1838 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Nieznany typ połączenia „%s”." + +#: ../src/nm-openvpn-service.c:1857 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "" +"Nie odnaleziono użytkownika „%s”. Proszę sprawdzić zmienną NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1870 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Nie odnaleziono grupy „%s”. Proszę sprawdzić zmienną NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2112 +msgid "Unhandled pending authentication." +msgstr "Nieobsłużone oczekujące uwierzytelnienie." + +#: ../src/nm-openvpn-service.c:2231 +msgid "Don’t quit when VPN connection terminates" +msgstr "Nie kończy działania, kiedy połączenie VPN jest kończone" + +#: ../src/nm-openvpn-service.c:2232 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Włącza więcej komunikatów debugowania (może wyjawić hasła)" + +#: ../src/nm-openvpn-service.c:2233 +msgid "D-Bus name to use for this instance" +msgstr "Nazwa D-Bus dla tego wystąpienia" + +#: ../src/nm-openvpn-service.c:2259 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service dostarcza zintegrowaną możliwość nawiązywania połączeń " +"OpenVPN dla usługi NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "Uwierzytelnianie TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "Szyfrowanie TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Może" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Tak" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Ogólne" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Brama:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Zdalne bramy, z opcjonalnym portem i protokołem (np. ovpn.example.com:1234:" +"tcp). Można podać wiele komputerów jako zapasowe (które można oddzielać " +"przecinkami lub spacjami).\n" +"konfiguracja: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Uwierzytelnianie" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "CA" +msgstr "CA" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User" +msgstr "Użytkownik" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "User name:" +msgstr "Nazwa użytkownika:" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Hasło przekazywane do OpenVPN.\n" +"konfiguracja: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nazwa użytkownika przekazywana do OpenVPN.\n" +"konfiguracja: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Remote IP Address:" +msgstr "Zdalny adres IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Local IP Address:" +msgstr "Lokalny adres IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Key Direction:" +msgstr "Kierunek klucza:" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "Static Key:" +msgstr "Klucz statyczny:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Wcześniej współdzielony plik dla trybu szyfrowania klucza statycznego (nie " +"TLS).\n" +"konfiguracja: static " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adres IP zdalnego punktu końcowego VPN.\n" +"konfiguracja: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Adres IP lokalnego punktu końcowego VPN.\n" +"konfiguracja: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Kierunek dla trybu szyfrowania klucza statycznego (nie TLS).\n" +"Jeśli zostanie użyty kierunek klucza, to musi być przeciwny kierunkowi " +"użytemu na serwerze VPN. Przykładowo, jeśli serwer używa „1”, to połączenie " +"musi użyć „0”. W wypadku braku pewności jakiej wartości użyć, proszę " +"skontaktować się z administratorem systemu.\n" +"konfiguracja: static [kierunek]" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Type:" +msgstr "Typ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Select an authentication mode." +msgstr "Wybór trybu uwierzytelniania." + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "Ad_vanced…" +msgstr "Zaa_wansowane…" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "OpenVPN Advanced Options" +msgstr "Zaawansowane opcje OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "Use custom gateway p_ort:" +msgstr "Własny port bra_my:" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Numer portu TCP/UDP dla partnera (domyślna wartość, kiedy nie ma portu dla " +"bramy).\n" +"konfiguracja: port" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Use custom _renegotiation interval:" +msgstr "Własny czas między ponownymi _negocjacjami:" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegocjuje klucz kanał danych po podanej liczbie sekund.\n" +"konfiguracja: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use L_ZO data compression" +msgstr "Kompresja L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Używa szybkiej kompresji LZO.\n" +"konfiguracja: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Wybiera tryb kompresji danych LZO.\n" +"konfiguracja: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "Use a _TCP connection" +msgstr "Połączenie _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Używa TCP do komunikowania się ze zdalnym komputerem\n" +"(domyślne ustawienie używane tylko, kiedy nie podano protokołu dla bramy)." +"konfiguracja: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Set virtual _device type:" +msgstr "Ustawienie typu urzą_dzenia wirtualnego:" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Bezpośrednio ustawia typ i nazwę urządzenia wirtualnego (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Bezpośrednio ustawia typ urządzenia wirtualnego (TUN/TAP).\n" +"konfiguracja: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid " and _name:" +msgstr " i _nazwa:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Ustawia własną nazwę dla urządzenia wirtualnego TUN/TAP (zamiast domyślnej " +"„tun” lub „tap”).\n" +"konfiguracja: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Własne MT_U tunelu:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Ustawia MTU urządzenia TUN na podaną wartość i oblicza z tego MTU łącza.\n" +"konfiguracja: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom UDP _fragment size:" +msgstr "Własny rozmiar f_ragmentu UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Włącza wewnętrzną fragmentację datagramów za pomocą tego rozmiaru " +"maksymalnego.\n" +"konfiguracja: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ograniczenie maksymalnego rozmiaru _segmentu (MSS) tunelu TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Ogranicza tunel TCP MSS.\n" +"konfiguracja: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Rando_mize remote hosts" +msgstr "_Losowanie zdalnych komputerów" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Losuje kolejność (zdalnej) listy bram jako rodzaj podstawowego balansowania " +"zasobów.\n" +"konfiguracja: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "IPv6 tun link" +msgstr "Łącze TUN IPv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Buduje łącze TUN umiejące przekierowywać ruch IPv6\n" +"konfiguracja: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "Specify _exit or restart ping:" +msgstr "Zakończ_enie i ponowne uruchomienie sygnały ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Kończy działanie lub ponownie uruchamia po n sekundach bez odbioru sygnału " +"ping lub innych pakietów ze zdalnego komputera.\n" +"konfiguracja: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Specify pin_g interval:" +msgstr "Czas między sygnałami pin_g:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Wysyła sygnał ping do zdalnego komputera przez kanał kontrolny protokołu TCP/" +"UDP, jeśli żadne pakiety pakiet nie został wysłany przez co najmniej n " +"sekund.\n" +"konfiguracja: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Przyjmowanie uwierzytelnionych pakietów z każdego adresu (f_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Umożliwia zdalnym partnerom zmianę swoich adresów IP lub numerów portów, na " +"przykład z powodu DHCP (domyślnie, jeśli opcja --remote nie jest używana). " +"Opcja --float podana z opcją --remote umożliwia sesji OpenVPN początkowe " +"połączenie z partnerem pod znanym adresem, jednakże jeśli pakiety przychodzą " +"z nowego adresu i przechodzą wszystkie testy uwierzytelnienia, to nowy adres " +"przejmie kontrolę nad sesją. Jest to przydatne podczas łączenia się " +"z partnerem mającym dynamiczny adres, taki jak użytkownik wdzwaniany lub " +"klient DHCP.\n" +"\n" +"W skrócie, opcja --float każe OpenVPN przyjmować uwierzytelnione pakiety " +"z każdego adresu, a nie tylko z adresu podanego w opcji --remote.\n" +"\n" +"konfiguracja: float" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "Specify max routes:" +msgstr "Maksymalna liczba tras:" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Określa maksymalną liczbę tras dla serwera.\n" +"konfiguracja: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Szyfruje pakiety za pomocą algorytmu szyfrowania. Domyślnie jest to BF-CBC " +"(Blowfish w trybie Cipher Block Chaining).\n" +"konfiguracja: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "Use custom _size of cipher key:" +msgstr "Własny _rozmiar klucza szyfrowania:" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Ustawia rozmiar klucza szyfrowania na podaną wartość. Jeśli wartość nie " +"zostanie podana, to używa rozmiaru domyślnego dla szyfru.\n" +"konfiguracja: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Uwierzytelnia pakiety za pomocą HMAC za pomocą algorytmu przenoszenia " +"komunikatów. Domyślnie wynosi SHA1.\n" +"konfiguracja: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Ci_pher:" +msgstr "_Szyfr:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_HMAC Authentication:" +msgstr "Uwierzytelnianie _HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Security" +msgstr "Zabezpieczenia" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_Subject Match:" +msgstr "Temat _dopasowania:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Temat lub wspólna nazwa, wobec której sprawdzać poprawność informacji " +"certyfikatu serwera.\n" +"\n" +"konfiguracja: verify-x509-name temat-lub-nazwa [tryb]\n" +"konfiguracja (tryb przestarzały): tls-remote temat-lub-nazwa" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "Server _Certificate Check:" +msgstr "Sprawdzanie _certyfikatu serwera:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Sprawdzanie poprawności identyfikacji certyfikatu serwera.\n" +"\n" +"Kiedy jest włączone, połączenie powiedzie się tylko, jeśli certyfikat " +"serwera pasuje do oczekiwanych właściwości.\n" +"Dopasowanie może być zastosowane do całego tematu certyfikatu (wszystkich " +"pól)\n" +"lub tylko wspólnej nazwy (pole CN).\n" +"\n" +"Opcja „tls-remote” jest przestarzała i została usunięta z OpenVPN 2.4 " +"i nowszych. Nie należy używać.\n" +"\n" +"konfiguracja: verify-x509-name temat-lub-nazwa [tryb]\n" +"konfiguracja (tryb przestarzały): tls-remote temat-lub-nazwa" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Sprawdzanie poprawności podpisu użycia certyfikatu partnera (serwera)" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Wymaga podpisania certyfikatu partnera za pomocą użycia bezpośredniego " +"klucza i użycie rozszerzonego klucza na podstawie reguł TLS dokumentu " +"RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "_Remote peer certificate TLS type:" +msgstr "Typ TLS certyfikatu _zdalnego partnera:" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Wymaga podpisania certyfikatu partnera za pomocą użycia bezpośredniego " +"klucza i użycie rozszerzonego klucza na podstawie reguł TLS dokumentu " +"RFC3280.\n" +"konfiguracja: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "" +"_Sprawdzanie poprawności określenia nsCertType certyfikatu partnera (serwera)" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Wymaga podpisania certyfikatu partnera za pomocą bezpośredniego określenia " +"nsCertType." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Określenie nsCertType certyfikatu _zdalnego partnera:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Wymaga podpisania certyfikatu partnera za pomocą bezpośredniego określenia " +"nsCertType.\n" +"konfiguracja: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "Key _Direction:" +msgstr "_Kierunek klucza:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Dodaje dodatkową warstwę uwierzytelniania HMAC ponad kanału kontroli TLS do " +"ochrony przed atakami DoS.\n" +"konfiguracja: tls-auth [kierunek]" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parametr kierunku dla trybu klucza statycznego.\n" +"Jeśli zostanie użyty kierunek klucza, to musi być przeciwny kierunkowi " +"użytemu na serwerze VPN. Przykładowo, jeśli serwer używa „1”, to połączenie " +"musi użyć „0”. W wypadku braku pewności jakiej wartości użyć, proszę " +"skontaktować się z administratorem systemu.\n" +"konfiguracja: tls-auth [kierunek]" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Key _File:" +msgstr "_Plik klucza:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Mode" +msgstr "Tryb" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Dodaje dodatkową warstwę szyfrowania lub uwierzytelniania HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "Additional TLS authentication or encryption" +msgstr "Dodatkowe uwierzytelnianie lub szyfrowanie TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "TLS Authentication" +msgstr "Uwierzytelnianie TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Typ pośrednika: HTTP lub SOCKS.\n" +"konfiguracja: http-proxy lub socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Proxy _Type:" +msgstr "_Typ pośrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Należy wybrać tę opcję, jeśli organizacja wymaga użycia serwera " +"pośrednika do dostępu do Internetu." + +#: ../properties/nm-openvpn-dialog.ui.h:140 +msgid "Server _Address:" +msgstr "_Adres serwera:" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Łączy ze zdalnym komputerem przez pośrednika za pomocą tego adresu.\n" +"konfiguracja: http-proxy lub socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Łączy ze zdalnym komputerem przez pośrednika za pomocą tego portu.\n" +"konfiguracja: http-proxy lub socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:146 +msgid "_Retry indefinitely when errors occur" +msgstr "_Powtarzanie w nieskończoność, kiedy wystąpi błąd" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Próbuje ponownie w nieskończoność po wystąpieniu błędów pośrednika. Symuluje " +"przywrócenie SIGUSR1.\n" +"konfiguracja: http-proxy-retry lub socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "Proxy _Username:" +msgstr "Nazwa _użytkownika pośrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "Proxy Passwor_d:" +msgstr "_Hasło pośrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "Nazwa użytkownika pośrednika HTTP/SOCKS przekazywana do OpenVPN." + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Hasło pośrednika HTTP/SOCKS przekazywane do OpenVPN." + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "_Show password" +msgstr "_Wyświetlanie hasła" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Proxies" +msgstr "Pośredniki" + +#: ../properties/nm-openvpn-dialog.ui.h:155 +msgid "Path mtu discovery" +msgstr "Wykrywanie MTU ścieżki" + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "Misc" +msgstr "Różne" diff --git a/po/ps.po b/po/ps.po new file mode 100644 index 0000000..cdca8b3 --- /dev/null +++ b/po/ps.po @@ -0,0 +1,859 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn.head\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2008-08-19 09:14-0800\n" +"Last-Translator: Zabeeh Khan \n" +"Language-Team: Pashto \n" +"Language: ps\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Pashto, Pushto\n" +"X-Poedit-Country: AFGHANISTAN\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "اوڅاریز ځاني ځال کرول" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr ":تېرنويې_" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "د بريليک تېرنويې:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "اوڅاریز ځاني ځال کرول" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "د بريليک تېر_نويې:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +".اوڅاریز ځانی ځال ته د لاسرسي لپاره ځان کره کړﺉ '%s' تاسو ته اړينه ده چې د" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "خپل وګړيز برېليک وټاکئ..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "خپله وګړيزه کيلۍ وټاکئ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "د بريليک واک يو برېليک وټاکئ..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "ولاړ کيلۍ وټاکئ... OpenVPN يوه" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "هېڅ" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "(*.pem, *.crt, *.key) بريليکونه PEM" + +#: ../properties/auth-helpers.c:917 +#, fuzzy +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "(*.pem, *.crt, *.key) بريليکونه PEM" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "(*.key) ولاړ کيلۍ OpenVPN" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "تلواله" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr ".پالنګر سره جوړ OpenVPN" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "(TLS) برېليک" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "تېرنويې" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "(TLS) بريليکونو سره تېرنویې " + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "ولاړه کيلۍ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "ټوليز" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr ":_ورلار" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "کرونه" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr ":تېرنويې_" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "خپله وګړيزه کيلۍ وټاکئ..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "وګړيزه کيلۍ:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "وګړيزه کيلۍ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr ":برېليک CA" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr ":کارن برېليک" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr ":کارن نوم" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr ":کيلۍ لور" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr ":ولاړه کيلۍ" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr ":ډول" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "...بر_یونلې" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr ":دوديزې ورلارې در_شل کارول" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "اومتوک زېرنه کارول L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "نښلېدنه کارول _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "ټوليز" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "ټکی:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +#, fuzzy +msgid "_HMAC Authentication:" +msgstr "کرونه" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "کرونه کارول TLS زياتي " + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "کرونه کارول TLS زياتي " + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr ":کيلۍ لور" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr ":کيلي دوتنه" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "کرونه" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr ":کارننوم_" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr ":تېرنويې_" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr ":تېرنويې_" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "کرونه کارول TLS زياتي " + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr ":دويمه تېرنويې_" + +#~ msgid "_Domain:" +#~ msgstr ":شپول_" + +#~ msgid "Connect _anonymously" +#~ msgstr "بېنومه نښلېدل_" + +#~ msgid "Connect as _user:" +#~ msgstr ":لکه _کارن نښلېدل" + +#~ msgid "_Remember password for this session" +#~ msgstr "دې ناستې لپاره تېرنويې په ياد ساتل_" + +#~ msgid "_Save password in keyring" +#~ msgstr "تېرونویي په کيلۍ رېنګ کې ساتل_" + +#~ msgid "Use a TA_P device" +#~ msgstr "وزله کارول TA_P" + +#~ msgid "gtk-cancel" +#~ msgstr "بندول-gtk" + +#~ msgid "gtk-ok" +#~ msgstr "هوکې-gtk" + +#~ msgid "page 1" +#~ msgstr "۱ پاڼه" + +#~ msgid "page 2" +#~ msgstr "۲مه پاڼه" + +#~ msgid "page 3" +#~ msgstr "۳مه پاڼه" + +#~ msgid "page 4" +#~ msgstr "۴مه پاڼه" diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..de176c1 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,1253 @@ +# NetworkManager-openvpn's Portuguese translation. +# Copyright © 2007, 2009 NetworkManager-openvpn +# This file is distributed under the same license as the NetworkManager-openvpn package. +# Duarte Loreto , 2007. +# Filipe Gomes , 2009, 2010, 2011. +# Pedro Albuquerque , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.26\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2015-11-03 23:17+0000\n" +"PO-Revision-Date: 2015-11-13 08:24+0000\n" +"Last-Translator: <>\n" +"Language-Team: Pedro Albuquerque\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" +"X-Project-Style: gnome\n" +"X-Language: pt_PT\n" +"X-Source-Language: C\n" + +#: ../auth-dialog/main.c:182 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autenticação VPN %s" + +#: ../auth-dialog/main.c:189 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Senha:" + +#: ../auth-dialog/main.c:196 +msgid "Certificate password:" +msgstr "Senha do certificado:" + +#: ../auth-dialog/main.c:203 +msgid "HTTP proxy password:" +msgstr "Senha da proxy HTTP:" + +#: ../auth-dialog/main.c:241 +msgid "Authenticate VPN" +msgstr "Autenticação VPN" + +#: ../auth-dialog/main.c:250 +msgid "Certificate pass_word:" +msgstr "_Senha do certificado:" + +#: ../auth-dialog/main.c:256 +msgid "_HTTP proxy password:" +msgstr "Senha do proxy _HTTP:" + +#: ../auth-dialog/main.c:520 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Tem de se autenticar para aceder à rede privada virtual (VPN) \"%s\"." + +#: ../properties/auth-helpers.c:188 +msgid "Choose your personal certificate..." +msgstr "Escolha o seu certificado pessoal..." + +#: ../properties/auth-helpers.c:206 +msgid "Choose your private key..." +msgstr "Escolha a sua chave privada..." + +#: ../properties/auth-helpers.c:322 +msgid "Choose a Certificate Authority certificate..." +msgstr "Escolha um certificado de Autoridade de Certificação..." + +#: ../properties/auth-helpers.c:366 +msgid "Choose an OpenVPN static key..." +msgstr "Escolha um chave estática OpenVPN..." + +#: ../properties/auth-helpers.c:390 ../properties/auth-helpers.c:1130 +#: ../properties/auth-helpers.c:1756 +msgid "None" +msgstr "Nenhuma" + +#: ../properties/auth-helpers.c:832 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificados PEM ou PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:833 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificados PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:893 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Chaves estáticas OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1034 ../properties/auth-helpers.c:1122 +msgid "Default" +msgstr "Predefinição" + +#: ../properties/auth-helpers.c:1132 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1134 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1136 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1138 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1140 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1142 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1144 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1146 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1197 +msgid "Server" +msgstr "Servidor" + +#: ../properties/auth-helpers.c:1202 +msgid "Client" +msgstr "Cliente" + +#: ../properties/auth-helpers.c:1470 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Não requerido" + +#: ../properties/auth-helpers.c:1472 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1474 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1659 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1661 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1668 +msgid "(automatic)" +msgstr "(automático)" + +#: ../properties/auth-helpers.c:1823 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1825 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:935 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" +"O ficheiro a importar não era uma configuração de cliente OpenVPN válida." + +#: ../properties/import-export.c:942 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" +"O ficheiro a importar não era uma configuração OpenVPN válida (sem remoto)." + +#: ../properties/import-export.c:1058 +msgid "could not open file for writing" +msgstr "impossível abrir o ficheiro para escrita" + +#: ../properties/import-export.c:1066 +msgid "connection was incomplete (missing gateway)" +msgstr "ligação incompleta (gateway em falta)" + +#: ../properties/nm-openvpn.c:69 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:70 +msgid "Compatible with the OpenVPN server." +msgstr "Compatível com o servidor OpenVPN." + +#: ../properties/nm-openvpn.c:351 +msgid "Certificates (TLS)" +msgstr "Certificados (TLS)" + +#: ../properties/nm-openvpn.c:362 +msgid "Password" +msgstr "Senha" + +#: ../properties/nm-openvpn.c:375 +msgid "Password with Certificates (TLS)" +msgstr "Senha com certificados (TLS)" + +#: ../properties/nm-openvpn.c:387 +msgid "Static Key" +msgstr "Chave estática" + +#: ../properties/nm-openvpn.c:535 +#| msgid "Could not find the openvpn binary." +msgid "could not create openvpn object" +msgstr "impossível criar objeto openvpn" + +#: ../properties/nm-openvpn.c:561 +msgid "could not load UI widget" +msgstr "impossível carregar widget de UI" + +#: ../properties/nm-openvpn.c:652 +msgid "unknown OpenVPN file extension" +msgstr "Extensão de ficheiro OpenVPN desconhecida" + +#: ../properties/nm-openvpn.c:680 +#| msgid "No VPN configuration options." +msgid "not a valid OpenVPN configuration file" +msgstr "não é um ficheiro de configuração VPN válido" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Geral" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. " +"ovpn.corp.com:1234:tcp). You can specify multiple hosts for redundancy (use " +"commas or spaces as delimiters).\n" +"config: remote" +msgstr "" +"Gateway(s) remota(s), com porta e protocolo opcional (por ex. " +"ovpn.corp.com:1234:tcp). Pode especificar múltiplas máquinas para " +"redundância (use espaços comuns como delimitadores).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autenticação" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "_Mostrar senhas" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Senha para chave privada" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Senha da chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Chave privad do par local em formato .pem.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Ficheiro de Autoridade Certificadora (CA) em formato .pem.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificado CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificado do utilizador:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Certificado assinado do par local em formato .pem (assinado por CA de " +"certificado CA).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Senha passada a OpenVPN quando pedida.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nome de utilizador:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nome de utilizador passado a OpenVPN quando pedido.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Endereço IP do ponto final VPN local.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Endereço IP remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Endereço IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Endereço IP do ponto final VPN remoto.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Direcção da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Chave estática:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Ficheiro pré-partilhado para o modo Static Key (não-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direção para o modo de encriptação Static Key (não TLS)\n" +"Se a direcção de chave for utilizada, tem de ser a oposta da utilizada no " +"par VPN. Por exemplo, se o par utiliza \"1\", esta ligação deve utilizar " +"\"0\". Se não tem a certeza de que valor utilizar, contacte o administrador " +"do sistema.\n" +"config: static [direção]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Selecione um modo de autenticação." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_Vançado..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Opções avançadas do OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Usar p_Orta de gateway personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +#| msgid "" +#| "TCP/UDP port number for local peer.\n" +#| "config: port" +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Número de porta TCP/UDP para o par local (valor predefinido quando não há " +"porta para gateway).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Usar intervalo de _Renegociação personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegociar chave do canal de dados apó o número de segundos especificados.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Usar compressão L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Usar Compressão LZO rápida.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Usar uma ligação _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +#| msgid "" +#| "Use TCP for communicating with remote host.\n" +#| "config: proto tcp-client | udp" +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Usar TCP para comunicar com a máquina remota.\n" +"(Esta é uma predefinição usada só quando não é especificado um protocolo " +"para a gateway).\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Set virtual _device type:" +msgstr "_Definir tipo de dispositivo virtual:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Definir explicitamente o tipo e nome do dispositivo virtual (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Definir explicitamente o tipo do dispositivo virtual (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid " and _name:" +msgstr " e _Nome:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Usar nome personalizado para dispositivo virtual TUN/TAP (em vez dos " +"predefinidos \"tun\" ou \"tap\").\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Usar Unidade Máxima de Transmissão (MTU) do _Túnel personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Leve a MTU do dispositivo TUN ao valor especificado e derive a ligação MTU " +"del.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Use custom UDP _fragment size:" +msgstr "Usar tamanho de _fragmento UDP personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Ativar fragmentação interna de datagram com o tamanho máximo.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Restringir tamanho máximo de segmento TCP do túnel (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restringir túnel TCP MSS.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Rando_mize remote hosts" +msgstr "_Máquinas remotas aleatórias" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic " +"load-balancing measure.\n" +"config: remote-random" +msgstr "" +"Baralhar a ordem da lista de gateways (remota) como uma espécie de medida " +"básica de carregamento.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Aceitar pacotes autenticados de qualquer endereço (f_Lutuar)" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address " +"and pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Permitir ao par remoto que altere o seu endereço IP e/ou número de porta, " +"tal como devido a DHCP (predefinição se --remote não for usado). --float " +"quando especificado com --remote permite que uma sessão OpenVPN se ligue " +"inicialmente a um par num endereço conhecido; contudo, se chegarem pacotes " +"de um novo endereço e passarem todos os testes de autenticação, o novo " +"endereço passa a controlar a sessão. É útil se está a ligar a um par que " +"mantém um endereço dinâmico, tal como um utilizador dial-in ou um cliente " +"DHCP.\n" +"\n" +"Essencialmente, --float indica ao OpenVPN que aceite pacotes de qualquer " +"endereço, não só do endereço especificado na opção --remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "Specify pin_g interval:" +msgstr "Espcificar intervalo de pin_G:" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Pingar remoto sobre o canal de controlo TCP/UDP, se nenhuns pacotes foram " +"enviados durante pelo menos n segundos.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify _exit or restart ping:" +msgstr "Especificar ping de _Saída ou reinício:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Sair ou reiniciar após n segundos sem receber um ping ou outro pacote do " +"remoto.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "General" +msgstr "Geral" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Encriptar pacotes com algoritmo de cifra. A predefinição é BF-CBC (Blowfish " +"em modo Cipher Block Chaining).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "Use custom _size of cipher key:" +msgstr "Usar tamanho personalizado da chave de cifra:" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to " +"cipher-specific size.\n" +"config: keysize " +msgstr "" +"Definir um valor personalizado para a chave de cifra. Se não especificado, " +"volta ao tamanho especifico da cifra.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autenticar pacotes com HMAC usando um algoritmo de grupo de mensagens. A " +"predefinição é SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Ci_pher:" +msgstr "Ci_Fra:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "_HMAC Authentication:" +msgstr "Autenticação _HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Security" +msgstr "Segurança" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "_Subject Match:" +msgstr "_Correspondência de assunto:" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Ligar só a servidores cujo certificado corresponda ao assunto dado.\n" +"Exemplo: /CN=meuvpn.empresa.com" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Aceitar ligações só de um servidor com nome X509 ou nome comum igual ao " +"especificado.\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verificar assinatura do certificado do par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Pedir que o certificado do par fosse assinado com um uso específico de chave " +"e uso estendido de chave baseado em regras TLS RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "_Remote peer certificate TLS type:" +msgstr "Tipo TLS do certificado do par _Remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Pedir que o certificado do par fosse assinado com um uso específico de chave " +"e uso estendido de chave baseado em regras TLS RFC3280.\n" +"config: remote-cert-tls cliente|servidor" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "Use additional _TLS authentication" +msgstr "Usar autenticação _TLS adicional" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Add an additional layer of HMAC authentication." +msgstr "Adicionar uma camada adicional de autenticação HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "Key _Direction:" +msgstr "_Direção da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:111 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Adicionar uma camada adicional de autenticação HMAC por cima do canal de " +"controlo TLS para proteger contra ataques DoS.\n" +"config: tls-auth [direção]" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parâmetro de direção para o modo de chave estática.\n" +"Se a direcção de chave for utilizada, tem de ser a oposta da utilizada no " +"par VPN. Por exemplo, se o par utiliza \"1\", esta ligação deve utilizar " +"\"0\". Se não tem a certeza de que valor utilizar, contacte o administrador " +"do sistema.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "Key _File:" +msgstr "Ficheiro da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:117 +msgid "TLS Authentication" +msgstr "Autenticação TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipo de proxy: HTTP ou Socks.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "Proxy _Type:" +msgstr "_Tipo de proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Seleccione esta opção se a sua organização requer o uso de um servidor " +"proxy para aceder à Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "Server _Address:" +msgstr "_Endereço do servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Ligar a máquina remota através de um proxy com este endereço.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "_Port:" +msgstr "_Porta:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Ligar a máquina remota através de um proxy com esta porta.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "_Retry indefinitely when errors occur" +msgstr "_Repetir indefinidamente quando ocorrem erros" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Repetir indefinidamente nos erros de proxy. Simula uma reposição SIGUSR1.\n" +"config: http-proxy-retry ou socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Proxy _Username:" +msgstr "Utilizador do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Proxy Passwor_d:" +msgstr "Senha do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "Nome de utilizador passado ao proxy HTTP/Socks quando pedido." + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Senha passada ao proxy HTTP/Socks quando pedida." + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "_Show password" +msgstr "_Mostrar senha" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxies" +msgstr "Proxies" + +#: ../src/nm-openvpn-service.c:207 +#, c-format +msgid "invalid address '%s'" +msgstr "endereço \"%s\" inválido" + +#: ../src/nm-openvpn-service.c:219 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "propriedade inteira \"%s\" inválida ou fora do intervalo [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:230 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "propriedade booliana \"%s\" inválida (não é sim ou não)" + +#: ../src/nm-openvpn-service.c:237 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "propriedade \"%s\" não gerida tipo %s" + +#: ../src/nm-openvpn-service.c:248 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "propriedade \"%s\" inválida ou não suportada" + +#: ../src/nm-openvpn-service.c:264 +msgid "No VPN configuration options." +msgstr "Sem opções de configuração VPN." + +#: ../src/nm-openvpn-service.c:433 +msgid "A username is required." +msgstr "É necessário um nome de utilizador." + +#: ../src/nm-openvpn-service.c:437 +msgid "A password is required." +msgstr "É necessária uma senha." + +#: ../src/nm-openvpn-service.c:440 +msgid "A username and password are required." +msgstr "São necessŕios nome de utilizador e senha." + +#: ../src/nm-openvpn-service.c:460 +msgid "A private key password is required." +msgstr "É necessária uma senha da chave privada." + +#: ../src/nm-openvpn-service.c:473 +msgid "An HTTP Proxy username is required." +msgstr "É necessário um nome de utilizador do proxy HTTP." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy password is required." +msgstr "É necessária uma senha do proxy HTTP." + +#: ../src/nm-openvpn-service.c:480 +msgid "An HTTP Proxy username and password are required." +msgstr "São necessários um nome de utilizador e uma senha do proxy HTTP." + +#: ../src/nm-openvpn-service.c:952 +msgid "Could not find the openvpn binary." +msgstr "Impossível encontrar o binário do openvpn." + +#: ../src/nm-openvpn-service.c:962 +msgid "Invalid HMAC auth." +msgstr "Autenticação HMAC inválida." + +#: ../src/nm-openvpn-service.c:972 ../src/nm-openvpn-service.c:1674 +msgid "Invalid connection type." +msgstr "Tipo de ligação inválida." + +#: ../src/nm-openvpn-service.c:1007 ../src/nm-openvpn-service.c:1017 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Número de porta \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1032 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Protocolo \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1073 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Tipo de proxy \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1096 +#, c-format +#| msgid "Invalid proto '%s'." +msgid "Invalid ping duration '%s'." +msgstr "Duração do ping \"%s\" inválida." + +#: ../src/nm-openvpn-service.c:1110 +#, c-format +#| msgid "Invalid proto '%s'." +msgid "Invalid ping-exit duration '%s'." +msgstr "Duração do ping-exit \"%s\" inválida." + +#: ../src/nm-openvpn-service.c:1124 +#, c-format +#| msgid "Invalid port number '%s'." +msgid "Invalid ping-restart duration '%s'." +msgstr "Duração do ping-restart \"%s\" inválida." + +#: ../src/nm-openvpn-service.c:1174 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Tamanho de chave \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1224 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Segundos de renegociação \"%s\" inválidos." + +#: ../src/nm-openvpn-service.c:1256 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Tamanho MTU TUN \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1271 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Tamanho de fragmento \"%s\" inválido." + +#: ../src/nm-openvpn-service.c:1347 +msgid "Missing required local IP address for static key mode." +msgstr "Endereço IP local requerido para o modo de chave estática em falta." + +#: ../src/nm-openvpn-service.c:1359 +msgid "Missing required remote IP address for static key mode." +msgstr "Endereço IP remoto requerido para o modo de chave estática em falta." + +#: ../src/nm-openvpn-service.c:1384 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Tipo de ligação \"%s\" desconhecido." + +#: ../src/nm-openvpn-service.c:1409 +#, c-format +msgid "User '%s' not found, check NM_OPENVPN_USER." +msgstr "Utilizador \"%s\" não encontrado, verifique NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1423 +#, c-format +msgid "Group '%s' not found, check NM_OPENVPN_GROUP." +msgstr "Grupo \"%s\" não encontrado, check NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:1588 ../src/nm-openvpn-service.c:1665 +#: ../src/nm-openvpn-service.c:1699 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Impossível processar o pedido porque as definições de ligação VPN são " +"inválidas." + +#: ../src/nm-openvpn-service.c:1597 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "Impossível processar o pedido porque o tipo de ligação VPN é inválido." + +#: ../src/nm-openvpn-service.c:1713 +msgid "Unhandled pending authentication." +msgstr "Autenticação pendente não gerida." + +#: ../src/nm-openvpn-service.c:1831 +msgid "Don't quit when VPN connection terminates" +msgstr "Não sair quando a ligação VPN termina" + +#: ../src/nm-openvpn-service.c:1832 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Ativar diário de depuração verboso (pode expor senhas)" + +#: ../src/nm-openvpn-service.c:1833 +msgid "D-Bus name to use for this instance" +msgstr "Nome D-Bus a usar nesta instância" + +#: ../src/nm-openvpn-service.c:1856 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"O serviço nm-openvpn-service fornece capacidade OpenVPN integrada ao Gestor " +"de redes." + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Gestor de ligações VPN (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Adicionar, remover e editar ligações VPN" + +#~ msgid "_Password:" +#~ msgstr "_Senha:" + +#~ msgid "_Secondary Password:" +#~ msgstr "S_enha Secundária:" + +#~ msgid "_Username:" +#~ msgstr "_Utilizador:" + +#~ msgid "_Domain:" +#~ msgstr "_Domínio:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Ligar-se _anonimamente" + +#~ msgid "Connect as _user:" +#~ msgstr "Ligar-se como o _utilizador:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Recordar a senha durante esta sessão" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Gravar a senha no chaveiro" + +#~ msgid "Use a TA_P device" +#~ msgstr "Utilizar um dispositivo TA_P" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Serão criadas as seguintes ligações OpenVPN:" + +#~ msgid "Name: %s" +#~ msgstr "Nome: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Tipo de Ligação: Certificados X.509" + +#~ msgid "CA: %s" +#~ msgstr "AC: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Cert: %s" + +#~ msgid "Key: %s" +#~ msgstr "Chave: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Tipo de Ligação: Chave Partilhada" + +#~ msgid "Shared Key: %s" +#~ msgstr "Chave Partilhada: %s" + +#~ msgid "Local IP: %s" +#~ msgstr "IP Local: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP Remoto: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Tipo de Ligação: Senha" + +#~ msgid "Username: %s" +#~ msgstr "Utilizador: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Tipo de Ligação: X.509 com Autenticação por Senha" + +#~ msgid "Remote: %s" +#~ msgstr "Remoto: %s" + +#~ msgid "Device: %s" +#~ msgstr "Dispositivo: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protocolo: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Rotas: %s" + +#~ msgid "Yes" +#~ msgstr "Sim" + +#~ msgid "No" +#~ msgstr "Não" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "Autenticação TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "" +#~ "Os detalhes da ligação podem ser alterados utilizando o botão \"Editar\"." + +#~ msgid "Cannot import settings" +#~ msgstr "Incapaz de importar as definições" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "O ficheiro de definições da VPN '%s' não contém dados válidos." + +#~ msgid "Select file to import" +#~ msgstr "Seleccionar o ficheiro a importar" + +#~ msgid "Select CA to use" +#~ msgstr "Seleccionar a AC a utilizar" + +#~ msgid "Select certificate to use" +#~ msgstr "Seleccionar o certificado a utilizar" + +#~ msgid "Select key to use" +#~ msgstr "Seleccionar a chave a utilizar" + +#~ msgid "Select shared key to use" +#~ msgstr "Seleccionar a chave partilhada a utilizar" + +#~ msgid "Select TA to use" +#~ msgstr "Seleccionar a TA a utilizar" + +#~ msgid "Save as..." +#~ msgstr "Gravar como..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Já existe um ficheiro denominado \"%s\"." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Deseja substituí-lo pelo que está a gravar?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Falha ao exportar a configuração" + +#~ msgid "Failed to save file %s" +#~ msgstr "Falha ao gravar o ficheiro %s" + +#~ msgid "0" +#~ msgstr "0" + +#~ msgid "1" +#~ msgstr "1" + +#~ msgid "Connection Name" +#~ msgstr "Nome da Ligação" + +#~ msgid "Optional Information" +#~ msgstr "Informação Opcional" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "exemplo: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "CA file:" +#~ msgstr "Ficheiro AC:" + +#~ msgid "CA file:" +#~ msgstr "Ficheiro AC:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Introduza abaixo a informação disponibilizada pelo administrador do seu " +#~ "sistema. Não introduza aqui a sua senha pois essa ser-lhe-á pedida quando " +#~ "se ligar." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Note que o ficheiro que importou não é um ficheiro de configuração " +#~ "OpenVPN. Peça o ficheiro ao administrador do seu sistema." + +#~ msgid "Remote IP:" +#~ msgstr "IP Remoto:" + +#~ msgid "Shared key" +#~ msgstr "Chave partilhada" + +#~ msgid "Use TLS auth:" +#~ msgstr "Utilizar autenticação TLS:" + +#~ msgid "Use cipher:" +#~ msgstr "Utilizar cifra:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "Certificados X.509\n" +#~ "Chave pré-partilhada\n" +#~ "Autenticação por Senha\n" +#~ "X.509 com Autenticação por Senha" + +#~ msgid "_Import Saved Configuration..." +#~ msgstr "_Importar Configuração Gravada..." + +#~ msgid "" +#~ "_Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "_Nome utilizado para identificar a ligação à rede privada, por. ex. \"VPN " +#~ "da Universidade\" ou \"Rede da Empresa\"" + +#~ msgid "_Only use VPN connection for these addresses" +#~ msgstr "_Apenas utilizar ligação VPN para estes endereços" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "O início de sessão VPN falhou porque o utilizador e senha não foram " +#~ "aceites ou a senha de certificado estava incorrecta." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "" +#~ "O início de sessão VPN falhou porque não foi possível iniciar a aplicação " +#~ "de VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "O início de sessão VPN falhou porque a aplicação de VPN foi incapaz de se " +#~ "ligar ao servidor de VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "O início de sessão VPN falhou porque a aplicação de VPN recebeu uma " +#~ "configuração inválida do servidor de VPN." + +#~ msgid "VPN connection failed" +#~ msgstr "Falhou a ligação VPN" diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..80e5bf7 --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,1780 @@ +# Brazilian Portuguese translation of NetworkManager-OpenVPN. +# Copyright (C) 2017 Free Software Foundation, Inc. +# This file is distributed under the same license as the NetworkManager package. +# Raphael Higino , 2004-2007. +# Washington Lins , 2007. +# Luiz Armesto , 2007. +# Henrique P Machado , 2008. +# Fábio Nogueira , 2008. +# Og Maciel , 2009. +# Antonio Fernandes C. Neto , 2010, 2011. +# Enrico Nicoletto , 2013. +# Rafael Fontenelle , 2012, 2013, 2014, 2015, 2016, 2017. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-OpenVPN\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=Networ" +"kManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-05-27 20:05+0000\n" +"PO-Revision-Date: 2017-06-25 16:11-0200\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Project-Style: gnome\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "Cliente OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Cliente para redes privadas virtuais OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "Suporte a configuração conexões de rede privada virtual OpenVPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN é uma solução VPN popular e flexível de software livre." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Os desenvolvedores NetworkManager" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autenticar na VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:25 +msgid "Password:" +msgstr "Senha:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Senha do certificado:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Senha do proxy HTTP:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Autenticar VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Sen_ha do certificado:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Senha do proxy _HTTP:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "Você precisa se autenticar para acessar a Rede Privada Virtual “%s”." + +#: ../properties/auth-helpers.c:213 +msgid "Choose your personal certificate…" +msgstr "Escolha seu certificado pessoal…" + +#: ../properties/auth-helpers.c:231 +msgid "Choose your private key…" +msgstr "Escolha sua chave privada…" + +#: ../properties/auth-helpers.c:347 +msgid "Choose a Certificate Authority certificate…" +msgstr "Escolha um certificado de Autoridade Certificadora…" + +#: ../properties/auth-helpers.c:391 +msgid "Choose an OpenVPN static key…" +msgstr "Escolha uma chave estática do OpenVPN…" + +#: ../properties/auth-helpers.c:415 ../properties/auth-helpers.c:1167 +#: ../properties/auth-helpers.c:1933 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Nenhum" + +#: ../properties/auth-helpers.c:857 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificados PEM ou PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:858 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificados PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:918 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Chaves estáticas do OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1065 ../properties/auth-helpers.c:1159 +msgid "Default" +msgstr "Padrão" + +#: ../properties/auth-helpers.c:1169 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1171 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1173 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1175 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1177 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1179 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1181 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1183 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1226 +msgid "Don’t verify certificate identification" +msgstr "Não verificar identificação do certificado do servidor" + +#: ../properties/auth-helpers.c:1232 +msgid "Verify whole subject exactly" +msgstr "Verificar sujeito completo exatamente" + +#: ../properties/auth-helpers.c:1238 +msgid "Verify name exactly" +msgstr "Verificar nome exatamente" + +#: ../properties/auth-helpers.c:1244 +msgid "Verify name by prefix" +msgstr "Verificar prefixo do nome" + +#: ../properties/auth-helpers.c:1250 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Verificar sujeito parcialmente (modo antigo, fortemente desencorajado)" + +#: ../properties/auth-helpers.c:1364 ../properties/auth-helpers.c:1435 +msgid "Server" +msgstr "Servidor" + +#: ../properties/auth-helpers.c:1369 ../properties/auth-helpers.c:1440 +msgid "Client" +msgstr "Cliente" + +#: ../properties/auth-helpers.c:1734 ../properties/nm-openvpn-dialog.ui.h:45 +msgid "Not required" +msgstr "Não requerido" + +#: ../properties/auth-helpers.c:1736 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1738 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1860 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1862 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1869 +msgid "(automatic)" +msgstr "(automático)" + +#: ../properties/auth-helpers.c:1993 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1995 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "a opção %s espera entre %u e %u argumento" +msgstr[1] "a opção %s espera entre %u e %u argumentos" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "a opção %s espera nenhum argumento" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "a opção %s espera exatamente um argumento" +msgstr[1] "a opção %s espera exatamente %u argumentos" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argumento %s de “%s” não pode estar vazio" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argumento de “%s” não pode estar vazio" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argumento %s de “%s” deve estar codificado em UTF-8" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argumento de “%s” deve estar codificado em UTF-8" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "%uº argumento de “%s” inválido, no qual se esperava um número" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "sem suporte ao %uº argumento de %s para “%s”" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"sem suporte ao %uº argumento de “%s”, o qual se parece com FQDN, sendo que " +"há suporte apenas a endereço IPv4" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "%uº argumento de “%s” inválido, no qual se esperava um endereço IPv4" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "argumento de direção chave %uº inválido para “%s”" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "%uº argumento de “%s” inválido" + +# %s é substituído pela tradução de "double quote" ou "single quote". +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "%s não terminadas na posição %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "aspas duplas" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "aspas simples" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "barra invertida de escape ao final na posição %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "não foi possível ler o arquivo auth de proxy HTTP" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "não foi possível ler usuário/senha do arquivo auth de proxy HTTP" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"usuário/senha do arquivo auth de proxy HTTP deve estar codificado em UTF-8" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "“%s” não é um diretório" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "não foi possível criar o diretório “%s”" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "" +"não foi possível escrever o blob <%s> a partir da linha %ld para o arquivo " +"(%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "" +"não foi possível escrever o blob <%s> a partir da linha %ld para o arquivo " +"“%s”" + +#: ../properties/import-export.c:933 +#, c-format +#| msgid "unsupported comp-lzo argument" +msgid "unsupported mtu-disc argument" +msgstr "argumento mtu-disc sem suporte" + +#: ../properties/import-export.c:944 ../properties/import-export.c:1303 +#, c-format +msgid "invalid option" +msgstr "opção inválida" + +#: ../properties/import-export.c:983 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "argumento comp-lzo sem suporte" + +#: ../properties/import-export.c:1079 +#, c-format +msgid "remote cannot contain space" +msgstr "remoto não pode conter espaço" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain comma" +msgstr "remoto não pode conter vírgula" + +#: ../properties/import-export.c:1094 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "remoto espera que protocolo seja udp ou remoto" + +#: ../properties/import-export.c:1287 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "tipo inválido na opção verify-x509-name" + +#: ../properties/import-export.c:1430 +#, c-format +msgid "unsupported blob/xml element" +msgstr "elemento blob/xml sem suporte" + +#: ../properties/import-export.c:1459 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "elemento <%s> blob não terminado" + +#: ../properties/import-export.c:1518 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "erro de configuração: %s (linha %ld)" + +#: ../properties/import-export.c:1519 +msgid "unknown or unsupported option" +msgstr "opção sem suporte ou desconhecida" + +#: ../properties/import-export.c:1529 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "" +"O arquivo a ser importado não era uma configuração de cliente OpenVPN válida" + +#: ../properties/import-export.c:1537 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "" +"O arquivo a ser importado não era uma configuração OpenVPN válida (nenhum " +"remoto)" + +#: ../properties/import-export.c:1769 +msgid "missing path argument" +msgstr "faltando argumento de caminho" + +#: ../properties/import-export.c:1779 +msgid "connection is not a valid OpenVPN connection" +msgstr "a conexão não é uma conexão OpenVPN válida" + +#: ../properties/import-export.c:1788 +msgid "connection was incomplete (missing gateway)" +msgstr "conexão estava incompleta (faltando gateway)" + +#: ../properties/import-export.c:2127 +#, c-format +msgid "failed to write file: %s" +msgstr "falha ao escrever o arquivo: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Compatível com o servidor OpenVPN." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "extensão de arquivo OpenVPN desconhecido" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Certificates (TLS)" +msgstr "Certificados (TLS)" + +#: ../properties/nm-openvpn-editor.c:320 +msgid "Password" +msgstr "Senha" + +#: ../properties/nm-openvpn-editor.c:333 +msgid "Password with Certificates (TLS)" +msgstr "Senha com certificados (TLS)" + +#: ../properties/nm-openvpn-editor.c:345 +msgid "Static Key" +msgstr "Chave estática" + +#: ../properties/nm-openvpn-editor.c:500 +msgid "could not create openvpn object" +msgstr "não foi possível criar objeto de openvpn" + +#: ../properties/nm-openvpn-editor.c:526 +msgid "could not load UI widget" +msgstr "não foi possível carregar widget da UI" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "a classe de objeto “%s” não possui uma propriedade chamada “%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "a propriedade “%s” da classe de objeto “%s” não pode ser escrita" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"propriedade de construtor “%s” para objeto “%s” não pode ser definido após " +"construção" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"“%s::%s” não é um nome de propriedade válido; “%s” não é um subtipo de " +"GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "" +"não foi possível definir a propriedade “%s” de tipo “%s” a partir do valor " +"de tipo “%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"o valor “%s” de tipo “%s” é inválido ou fora do intervalo da propriedade " +"“%s” de tipo “%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "faltando arquivo de plug-in “%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "não foi possível carregar o plug-in do editor: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "não foi possível carregar fábrica %s do plug-in: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "erro desconhecido ao criar instância do editor" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "endereço inválido “%s”" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "propriedade inteira inválida “%s” ou fora do intervalo [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "propriedade booleana inválida “%s” (não é sim ou não)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "propriedade “%s” sem tratamento do tipo %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "propriedade “%s” inválida ou sem suporte" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Sem opções de configurações de VPN." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "É necessário um nome de usuário." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Uma senha é necessária." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "São necessários um nome de usuário e senha." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Uma senha da chave privada é necessária." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "É necessário um nome de usuário para o proxy HTTP." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Uma senha de proxy HTTP é necessária." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Um usuário e senha de proxy HTTP são necessários." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2058 +#: ../src/nm-openvpn-service.c:2092 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Não foi possível processar a requisição porque as configurações de conexão " +"VPN eram inválidas." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2067 +msgid "Invalid connection type." +msgstr "Tipo de conexão inválida." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Não foi possível encontrar o executável do openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Autenticação HMAC inválida." + +#: ../src/nm-openvpn-service.c:1354 ../src/nm-openvpn-service.c:1362 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Número da porta inválida “%s”." + +#: ../src/nm-openvpn-service.c:1378 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Protocolo inválido “%s”." + +#: ../src/nm-openvpn-service.c:1420 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Tipo de proxy inválido “%s”." + +#: ../src/nm-openvpn-service.c:1468 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Duração de ping %s inválida." + +#: ../src/nm-openvpn-service.c:1481 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Duração de ping-exit %s inválida." + +#: ../src/nm-openvpn-service.c:1494 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Duração de ping-restart %s inválida." + +#: ../src/nm-openvpn-service.c:1513 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Numero máximo de rotas (max-routes) “%s” inválido." + +#: ../src/nm-openvpn-service.c:1568 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Tamanho de chave inválido “%s”." + +#: ../src/nm-openvpn-service.c:1625 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Configuração inválida com tls-remote e verify-x509-name." + +#: ../src/nm-openvpn-service.c:1639 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Verificação de identificação do servidor (verify-x509-name) inválida." + +#: ../src/nm-openvpn-service.c:1673 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Segundos de renegociação inválidos “%s”." + +#: ../src/nm-openvpn-service.c:1705 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Tamanho TUN MTU inválido “%s”." + +#: ../src/nm-openvpn-service.c:1719 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Tamanho do fragmento inválido “%s”." + +#: ../src/nm-openvpn-service.c:1831 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Tipo de conexão desconhecida “%s”." + +#: ../src/nm-openvpn-service.c:1850 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Usuário “%s” não localizado, verifique NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1863 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Grupo “%s” não localizado, verifique NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2105 +msgid "Unhandled pending authentication." +msgstr "Autenticação pendente sem tratamento." + +#: ../src/nm-openvpn-service.c:2224 +msgid "Don’t quit when VPN connection terminates" +msgstr "Não sair quando terminar a conexão VPN" + +#: ../src/nm-openvpn-service.c:2225 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Habilitar registros detalhados para depuração (pode expor senhas)" + +#: ../src/nm-openvpn-service.c:2226 +msgid "D-Bus name to use for this instance" +msgstr "Nome D-Bus a ser usado para esta instância" + +#: ../src/nm-openvpn-service.c:2252 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service fornece integração dos recursos do OpenVPN para o " +"NetworkManager." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "Autenticação-TSL" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "Criptografia TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Talvez" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Sim" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Geral" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Gateway(s) remoto(s), com porta e protocolo opcionais (ex.: ovpn.corp." +"com:1234:tcp). Você pode especificar múltiplas máquinas para redundância " +"(use vírgulas ou espaços como delimitadores).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Autenticação" + +#: ../properties/nm-openvpn-dialog.ui.h:11 +msgid "_Show passwords" +msgstr "_Mostrar senhas" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Password for private key" +msgstr "Senha da chave privada" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "Private Key Password:" +msgstr "Senha da chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:14 +msgid "" +"Local peer’s private key in .pem format.\n" +"config: key" +msgstr "" +"Chave privada do par local no formato .pem.\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "Private Key:" +msgstr "Chave privada:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"O arquivo da autoridade certificadora (AC) no formato .pem.\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "CA Certificate:" +msgstr "Certificado da AC:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "User Certificate:" +msgstr "Certificado de usuário:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Local peer’s signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Certificado assinado do par local em .pem (assinado pela AC do certificado " +"do AC).\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Senha fornecida ao OpenVPN quando solicitado.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:26 +msgid "User name:" +msgstr "Nome de usuário:" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Nome de usuário fornecido ao OpenVPN quando solicitado.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Endereço IP do ponto local de VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Remote IP Address:" +msgstr "Endereço IP remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Local IP Address:" +msgstr "Endereço IP local:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Endereço IP do ponto remoto de VPN.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Key Direction:" +msgstr "Direção da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "Static Key:" +msgstr "Chave estática:" + +#: ../properties/nm-openvpn-dialog.ui.h:37 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Arquivo pré-compartilhado para o modo de criptografia de Chave Estática (não-" +"TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Direção do modo de criptografia da chave estática (não-TLS).\n" +"Se direção da chave for utilizada, ela tem que ser oposta da usada no par da " +"VPN. Por exemplo: se o par utiliza “1”, esta conexão tem que utilizar “0”. " +"Se você não tem certeza de qual valor utilizar, entre em contato com seu " +"administrador de sistema.\n" +"config: static [direção]" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "Type:" +msgstr "Tipo:" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Select an authentication mode." +msgstr "Selecione um modo de autenticação." + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "Ad_vanced…" +msgstr "A_vançado…" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "OpenVPN Advanced Options" +msgstr "Opções avançadas do OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "Use custom gateway p_ort:" +msgstr "Usar porta de _gateway personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:48 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Número de porta TCP/UDP para o par. (Valor padrão quando não há porta para o " +"gateway).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Use custom _renegotiation interval:" +msgstr "Usar intervalo personalizado de _renegociação:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Renegocia chave do canal de dados depois do número especificado de " +"segundos.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "Use L_ZO data compression" +msgstr "Usar compressão de dados L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Usa compressão rápida LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Seleciona o modo de compressão de dados LZO.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "Use a _TCP connection" +msgstr "Usar uma conexão _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Usa TCP para comunicação com máquina remota.\n" +"(Esta é uma configuração padrão usada apenas quando nenhum protocolo é " +"especificado para o gateway.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Set virtual _device type:" +msgstr "Definir o tipo de _dispositivo virtual:" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" +"Define explicitamente o tipo e o nome do dispositivo virtual (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Define explicitamente o tipo de dispositivo virtual (TUN/TAP).\n" +"config: dev-type tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid " and _name:" +msgstr " e _nome:" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Usa um nome personalizado para o dispositivo virtual TUN/TAP (ao invés do " +"padrão “tun” ou “tap”).\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Usar a _unidade máxima de transferência (MTU) do túnel personalizada:" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Faz com que o MTU do dispositivo TUN seja o valor especificado e derive o " +"MTU do link a partir dele.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Use custom UDP _fragment size:" +msgstr "Usar tamanho de _fragmento UDP personalizado:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Habilita fragmentação interna de datagramas com este tamanho máximo.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Restringir o tamanho máximo de _segmento (MSS) TCP do túnel" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Restringe o MSS do TCP do túnel.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Rando_mize remote hosts" +msgstr "Aleatorizar _máquinas remotas" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Aleatoriza a ordem da lista de gateways (remotos) como uma forma de medida " +"de balanceamento de carga básica.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:81 +msgid "IPv6 tun link" +msgstr "link tun IPv6" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Constrói um link tun capaz de encaminhar tráfego IPv6\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Aceitar pacotes autenticados de qualquer endereço (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Permite que um par remoto altere seu endereço IP e/ou número de porta, tal " +"como atingir tempo limite definido no DHCP (esse é o padrão, se --remote não " +"for usado). Quando --float é especificado com --remote permite que uma " +"sessão OpenVPN conectar inicialmente com um par em um endereço conhecido, " +"porém se os pacotes chegarem de um novo endereço e passar em todos os testes " +"de autenticação, o novo endereço vai tomar controle da sessão. Isso é útil " +"quando você está conectando a um par que mantém um endereço dinâmico, tal " +"como um usuário de conexão discada ou cliente DHCP.\n" +"\n" +"Essencialmente, --float diz para OpenVPN aceitar pacotes autenticados de " +"qualquer endereço, não apenas o endereço que foi especificado na opção --" +"remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "Specify pin_g interval:" +msgstr "Especificar intervalo do pin_g:" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Ping remoto sobre o canal de controle TCP/UDP, se nenhum pacote tiver sido " +"enviado por pelo menos n segundos.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "Specify _exit or restart ping:" +msgstr "_Especificar saída ou reinício do ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Saída ou reinício após n segundos passarem sem recepção de um ping ou outro " +"pacote do remoto.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Specify max routes:" +msgstr "Especificar máximo de rotas:" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Especificar o número máximo de rotas que o servidor pode fornecer.\n" +"config: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Criptografar pacotes com o algoritmo de cifras. O padrão é o BF-CBC " +"(Blowfish no modo Cipher Block Chaining).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "Use custom _size of cipher key:" +msgstr "Usar tamanho _personalizado para a chave de cifra:" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Define o tamanho de chave para um valor personalizado. Se não for " +"especificado, adota-se o tamanho padrão específico de cifra.\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autenticar pacotes com HMAC usando algoritmo de digest de mensagem. O padrão " +"é SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "Ci_pher:" +msgstr "Cifra_gem:" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "_HMAC Authentication:" +msgstr "Autenticação _HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "Security" +msgstr "Segurança" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "_Subject Match:" +msgstr "Corresponder _sujeito:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Sujeito ou Nome Comum (CN) para verificar identificação do servidor.\n" +"\n" +"config: verify-x509-name sujeito-ou-nome [modo]\n" +"config (modo antigo): tls-remote sujeito-ou-nome" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "Server _Certificate Check:" +msgstr "Verificar _Certificado do Servidor" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Verificar identificação do servidor\n" +"\n" +"Quando habilitada, conexões só serão efetuadas se o certificado do servidor " +"corresponder às propriedades esperadas\n" +"A verificação pode se aplicar ao sujeito completo do certificado (todos os " +"campos),\n" +"ou somente ao Nome Comum (campo CN).\n" +"\n" +"A opção legada tls-remote é obsoleta e foi removida de OpenVPN 2.4 e mais " +"novos. Não o use mais.\n" +"\n" +"config: verify-x509-name sujeito-ou-nome [modo]\n" +"config (modo antigo): tls-remote sujeito-ou-nome" + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verificar a assinatura de uso de certificado do par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Requer que o certificado do par tenha sido assinado com um uso de chave " +"explícito e estendido baseado nas regras TLS do RFC3280." + +#: ../properties/nm-openvpn-dialog.ui.h:127 +msgid "_Remote peer certificate TLS type:" +msgstr "Tipo de TLS do certificado do par _remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Requer que o certificado do par remoto tenha sido assinado com um uso de " +"chave explícito e estendido baseado nas regras TLS do RFC3280.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Verificar a designação nsCertType de certificado do par (servidor)" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Requer que o certificado do par tenha sido assinado com uma designação " +"nsCertType explícita." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Designação nsCert do certificado do par _remoto:" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Requer que o certificado do par remoto tenha sido assinado com uma " +"designação nsCertType explícita.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "Key _Direction:" +msgstr "_Direção da chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Adicionar uma camada extra de autenticação HMAC em cima do canal de controle " +"TLS para proteger contra ataques DoS.\n" +"config: tls-auth [direção]" + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parâmetro de direção para modo de chave estática.\n" +"Se direção da chave for utilizada, ela tem que ser o oposto da usada no par " +"da VPN. Por exemplo: se o par utiliza “1”, esta conexão tem que utilizar " +"“0”. Se você não tem certeza de qual valor utilizar, entre em contato com " +"seu administrador de sistema.\n" +"config: tls-auth [direção]" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "Key _File:" +msgstr "Ar_quivo de chave:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "Mode" +msgstr "Modo" + +#: ../properties/nm-openvpn-dialog.ui.h:143 +#| msgid "Add an additional layer of HMAC authentication." +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Adiciona uma camada adicional de criptografia ou autenticação HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:144 +#| msgid "Use additional _TLS authentication" +msgid "Additional TLS authentication or encryption" +msgstr "Criptografia ou autenticação TLS adicional" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "TLS Authentication" +msgstr "Autenticação TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:146 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Tipo de proxy: HTTP ou Socks.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy _Type:" +msgstr "_Tipo de proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Selecione essa opção se sua empresa requer o uso de um servidor proxy " +"para acessar a Internet." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "Server _Address:" +msgstr "_Endereço do servidor:" + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conecta a uma máquina remota por meio de um proxy com este endereço.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "_Port:" +msgstr "_Porta:" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Conecta a uma máquina remota por meio de um proxy com esta porta.\n" +"config: http-proxy ou socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:156 +msgid "_Retry indefinitely when errors occur" +msgstr "_Repetir indefinidamente quando ocorrer erros" + +#: ../properties/nm-openvpn-dialog.ui.h:157 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Repete tentativas indefinidamente na ocorrência de erros no proxy. Ele " +"simula uma reinicialização de SIGUSR1.\n" +"config: http-proxy-retry ou socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:159 +msgid "Proxy _Username:" +msgstr "Nome de _usuário do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:160 +msgid "Proxy Passwor_d:" +msgstr "Senha _do proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:161 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Nome de usuário para proxy HTTP/Socks fornecido ao OpenVPN quando solicitado." + +#: ../properties/nm-openvpn-dialog.ui.h:162 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Senha para proxy HTTP/Socks fornecido ao OpenVPN quando solicitado." + +#: ../properties/nm-openvpn-dialog.ui.h:163 +msgid "_Show password" +msgstr "_Mostrar senha" + +#: ../properties/nm-openvpn-dialog.ui.h:164 +msgid "Proxies" +msgstr "Proxies" + +#: ../properties/nm-openvpn-dialog.ui.h:165 +msgid "Path mtu discovery" +msgstr "Descoberta de mtu do caminho" + +#: ../properties/nm-openvpn-dialog.ui.h:166 +msgid "Misc" +msgstr "Miscelânea" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "" +#~ "Faltando o endereço de IP local necessário para o modo de chave estática." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "" +#~ "Faltando o endereço de IP remoto necessário para o modo de chave estática." + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "" +#~ "não foi possível escrever o blob <%s> a partir da linha %ld para o " +#~ "arquivo \"%s\"" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "Não foi possível processar a requisição porque o tipo de conexão openvpn " +#~ "era inválido." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Geral" + +#~ msgid "Authentication" +#~ msgstr "Autenticação" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Conectar somente a servidores cujo certificado corresponde ao sujeito " +#~ "fornecido.\n" +#~ "Exemplo: /CN=minhavpn.empresa.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Aceitar conexões somente de uma máquina com nome X509 ou nome comum igual " +#~ "ao especificado.\n" +#~ "config: tls-remote" + +#~ msgid "could not open file for writing" +#~ msgstr "não foi possível abrir para escrita" + +# %s nome da opção; %u número de argumentos +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "a opção %s espera %u argumentos" + +#~ msgid "empty %s service argument" +#~ msgstr "argumento de serviço %s vazio" + +#~ msgid "missing certificate file name" +#~ msgstr "faltando nome de arquivo de certificado" + +#~ msgid "empty tls-remote argument" +#~ msgstr "argumento tls-remote vazio" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Gerenciador de Conexões VPN (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Adicione, remova e edite conexões VPN" + +#~ msgid "" +#~ "TCP/UDP port number for local peer.\n" +#~ "config: port" +#~ msgstr "" +#~ "Número da porta TCP/UDP para o par local.\n" +#~ "config: port" + +#~ msgid "" +#~ "Use TCP for communicating with remote host.\n" +#~ "config: proto tcp-client | udp" +#~ msgstr "" +#~ "Usa TCP para se comunicar com a máquina remota.\n" +#~ "config: proto tcp-client | udp" + +#~ msgid "Saved" +#~ msgstr "Salvo" + +#~ msgid "Always Ask" +#~ msgstr "Perguntar sempre" + +#~ msgid "Not Required" +#~ msgstr "Não requerido" + +#~ msgid "" +#~ "Direction parameter for static key mode.\n" +#~ "config: tls-auth [direction]" +#~ msgstr "" +#~ "Parâmetro de direção para o modo de chave estática.\n" +#~ "config: tls-auth [direção]" + +#~ msgid "" +#~ "Direction for Static Key encryption mode (non-TLS).\n" +#~ "config: static [direction]" +#~ msgstr "" +#~ "Direção para o modo de criptografia de Chave Estática (não-TLS).\n" +#~ "config: static " + +#~ msgid "Use a TA_P device" +#~ msgstr "Usar um dispositivo TA_P" + +#~ msgid "_Password:" +#~ msgstr "_Senha:" + +#~ msgid "_Secondary Password:" +#~ msgstr "S_enha secundária:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "_Mostrar senhas" + +#~ msgid "No VPN secrets!" +#~ msgstr "VPN sem segredos!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "" +#~ "Não foi possível processar a requisição porque o nome de usuário não foi " +#~ "fornecido." + +#~ msgid "_Username:" +#~ msgstr "Nome de _usuário:" + +#~ msgid "_Domain:" +#~ msgstr "_Domínio:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Conectar _anonimamente" + +#~ msgid "Connect as _user:" +#~ msgstr "Conectar como _usuário:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Lembrar senha para esta sessão" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Salvar senha no chaveiro" + +#~ msgid "gtk-cancel" +#~ msgstr "gtk-cancel" + +#~ msgid "gtk-ok" +#~ msgstr "gtk-ok" + +#~ msgid "page 1" +#~ msgstr "página 1" + +#~ msgid "page 2" +#~ msgstr "página 2" + +#~ msgid "page 3" +#~ msgstr "página 3" + +#~ msgid "page 4" +#~ msgstr "página 4" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "As seguintes conexões OpenVPN serão criadas:" + +#~ msgid "Name: %s" +#~ msgstr "Nome: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Tipo de Conexão: Certificados X.509" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Cert: %s" + +#~ msgid "Key: %s" +#~ msgstr "Chave: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Tipo de Conexão: Chave Compartilhada" + +#~ msgid "Shared Key: %s" +#~ msgstr "Chave Compartilhada: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP Remoto: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Tipo de Conexão: Senha" + +#~ msgid "Username: %s" +#~ msgstr "Nome do usuário: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Tipo de Conexão: X.509 com Autenticação de Senha" + +#~ msgid "Remote: %s" +#~ msgstr "Remoto: %s" + +#~ msgid "Device: %s" +#~ msgstr "Dispositivo: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protocolo: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Rotas: %s" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "Autenticação TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "" +#~ "Os detalhes da conexão podem ser alterados usando o botão \"Editar\"." + +#~ msgid "Cannot import settings" +#~ msgstr "Não é possível importar configurações" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "O arquivo de configurações de VPN \"%s\" não contém dados válidos." + +#~ msgid "Select file to import" +#~ msgstr "Selecione o arquivo a importar" + +#~ msgid "Select CA to use" +#~ msgstr "Selecione o CA a usar" + +#~ msgid "Select certificate to use" +#~ msgstr "Selecione o certificado a usar" + +#~ msgid "Select key to use" +#~ msgstr "Selecione a chave a usar" + +#~ msgid "Select shared key to use" +#~ msgstr "Selecione a chave compartilhada a usar" + +#~ msgid "Select TA to use" +#~ msgstr "Selecione TA para usar" + +#~ msgid "Save as..." +#~ msgstr "Salvar como..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Um arquivo chamado \"%s\" já existe." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Você deseja substituí-la com aquela que você está salvando?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Falha ao exportar configuração" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "exemplo: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "Arquivo C_A:" + +#~ msgid "Connection na_me:" +#~ msgstr "No_me da Conexão" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Importar Configurações _Salvas..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Nome usado para identificar a conexão à rede privada, por ex. \"VPN do " +#~ "Campus\" ou \"Rede Corporativa\"" + +#~ msgid "Network" +#~ msgstr "Rede" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "Usar conexões _VPN apenas para estes endereços:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Por favor, digite abaixo as informações fornecidas pelo seu administrador " +#~ "de sistema. Não digite sua senha aqui, já que ela será solicitada ao " +#~ "conectar." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Por favor, observe que o arquivo que você importou não é um arquivo de " +#~ "configuração OpenVPN. Pergunte ao seu administrador pelo arquivo." + +#~ msgid "Shared _key:" +#~ msgstr "C_have compartilhada:" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Usar autenticação _TLS:" + +#~ msgid "Use cip_her:" +#~ msgstr "Usar ci_fragem:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "Certificados X.509\n" +#~ "Chave pré-compartilhada\n" +#~ "Autenticação de Senha\n" +#~ "X.509 com Autenticação de Senha" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "Endereço do _Gateway:" + +#~ msgid "_Key:" +#~ msgstr "C_have:" + +#~ msgid "_Local IP:" +#~ msgstr "IP _Local:" + +#~ msgid "_Remote IP:" +#~ msgstr "IP _Remoto:" + +#~ msgid "_none" +#~ msgstr "_nenhum" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "A autenticação VPN falhou porque o nome do usuário e a senha não foram " +#~ "aceitas ou a senha do certificado estava errada." + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "A autenticação VPN falhou porque o programa não pôde ser iniciado." + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "A autenticação VPN falhou porque o programa VPN não pôde se conectar ao " +#~ "servidor VPN." + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "A autenticação VPN falhou porque o programa VPN recebeu uma configuração " +#~ "inválida do servidor VPN." + +#~ msgid "VPN connection failed" +#~ msgstr "Falha na conexão VPN" diff --git a/po/ro.po b/po/ro.po new file mode 100644 index 0000000..9edc70a --- /dev/null +++ b/po/ro.po @@ -0,0 +1,865 @@ +# Romanian translation for network-manager-openvpn. +# Copyright (C) 2011 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package.# +# Dobre Alin , 2011. +# Daniel Șerbănescu , 2012. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn NETWORKMANAGER_0_7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2012-08-05 21:52+0200\n" +"Last-Translator: Daniel Șerbănescu \n" +"Language-Team: Gnome Romanian Translation Team\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);;\n" +"X-Generator: Virtaal 0.7.0\n" +"X-Project-Style: gnome\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Autentificare VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Parolă:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Parolă certificată:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Autentificare VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Paro_lă certificată:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Trebuie să vă autentificați pentru a accesa rețeaua virtuală privată „%s”." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Alegeți-vă certificatul personal..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Alegeți-vă cheia privată..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Alegeți certificatul autorității de certificare..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Alegeți o cheie statică OpenVPN..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Niciunul" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Certificate PEM sau PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Certificate PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Chei statice OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Implicit" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Compatibil cu serverul OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Certificate (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Parolă" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Parolă cu certificate (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Cheie statică" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Generale" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Autentificare" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "Arată parolele" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Alegeți-vă cheia privată..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Parola cheii private:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Cheia privată:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Certificat CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Certificat utilizator:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Nume de utilizator:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Adresă IP de la distanță:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Adresă IP locală:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Direcția cheii:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Cheie statică:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Dacă este folosită o direcție a cheii, ea trebuie să fie opusul celei " +"folosite de partenerul VPN. De exemplu, dacă un partener folosește „1”, " +"această conexiune trebuie să folosească „0”. Dacă sunteți nesigur ce valoare " +"să folosiți, contactați administratorul de sistem." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tip:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "Autentificare TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "A_vansat..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Opțiuni avansate OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Folosește un p_ort gateway specific:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Folosește un interval de _renegociere specific:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Folosește compresia datelor de tip L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Folosește o conexiune _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +#, fuzzy +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Folosește o unitate maximă de transmisie personalizată a _tunelului (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Folosește o dimensiune specifică a _fragmentului UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +#, fuzzy +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" +"Restricționează dimensiunea maximă de segment pentru tunelare TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Generale" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "Cifru:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +#, fuzzy +msgid "_HMAC Authentication:" +msgstr "Autentificare HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Securitate" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +#, fuzzy +msgid "_Subject Match:" +msgstr "Potrivire subiect:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Conectează-te numai la servere ale căror certificate se potrivesc cu " +"subiectul dat.\n" +"Exemplu: /CN=vpn.firmă.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +#, fuzzy +msgid "Use additional _TLS authentication" +msgstr "Folosește autentificarea TLS adițională" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Folosește autentificarea TLS adițională" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "Direcția cheii:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Dacă este folosită o direcție a cheii, ea trebuie să fie opusul celei " +"folosite de partenerul VPN. De exemplu, dacă un partener folosește „1”, " +"această conexiune trebuie să folosească „0”. Dacă sunteți nesigur ce valoare " +"să folosiți, contactați administratorul de sistem." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +#, fuzzy +msgid "Key _File:" +msgstr "Fișierul cheii:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Autentificare TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "Adresă IP de la distanță:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "N_ume utilizator:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "Parolă:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "Arată parolele" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Parola cheii private:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Folosește autentificarea TLS adițională" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Parolă:" + +#~ msgid "_Secondary Password:" +#~ msgstr "Parolă _secundară:" + +#~ msgid "_Domain:" +#~ msgstr "_Domeniu:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Conectează ca _anonim" + +#~ msgid "Connect as _user:" +#~ msgstr "Conectare ca _utilizator:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Reține parola pentru această sesiune" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Salvează parola în inelul de chei" + +#~ msgid "Use a TA_P device" +#~ msgstr "Folosește un dispozitiv TA_P" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..3a6a034 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,863 @@ +# translation of network-manager-openvpn.master.ru.po to Russian +# Russian translation of NetworkManager openvpn +# Copyright (C) Free Software Foundation, 2005 +# This file is distributed under the same license as the NetworkManager package. +# +# Maxim Dziumanenko , 2005-2007. +# Leonid Kanter , 2007, 2008. +# Артём Попов , 2009. +# Yuri Kozlov , 2010, 2011. +# Stas Solovey , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn trunk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-10-29 15:18+0300\n" +"Last-Translator: Yuri Myasoedov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.0\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Аутентификация VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Пароль:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Пароль к сертификату:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Аутентификация VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Па_роль к сертификату:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Для доступа к виртуальной частной сети «%s» требуется аутентификация." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Выберите свой персональный сертификат…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Выберите свой личный ключ…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Сохранённые" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Всегда спрашивать" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Не требуется" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Выберите сертификат центра сертификации…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Выберите статический ключ OpenVPN…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Нет" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Сертификаты PEM или PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Сертификаты PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Статические ключи OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "По умолчанию" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Не требуется" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Совместим с сервером OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Сертификаты (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Пароль" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Пароль с сертификатами (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Статический ключ" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Не удалось найти исполняемый файл openvpn." + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Нет параметров настройки VPN." + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Общие" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Шлюз:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Аутентификация" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Показать пароли" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Выберите свой личный ключ…" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Пароль к личному ключу:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Личный ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Сертификат ЦС:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Сертификат пользователя:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Имя пользователя:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Удалённый IP-адрес:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Локальный IP-адрес:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Направление ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Статический ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Если используется направление ключа, оно должно быть противоположно " +"направлению, которое использует вторая сторона. Например, если вторая " +"сторона использует «1», это соединение должно использовать «0». Если вы не " +"уверены, какое значение использовать, свяжитесь с системным администратором." +"" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Тип:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "Аутентификация TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Дополнительно…" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Дополнительные параметры OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Использовать другой _порт шлюза:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Использовать нестандартный интервал _пересогласования:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Использовать для данных сжатие L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Использовать соединение _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Использовать нестандартный максимальный размер элемента передачи (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Использовать нестандартный размер _фрагмента UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ограничить максимальный размер сегмента TCP (MSS) туннеля" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "_Случайный шлюз" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Общие" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Шифр:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Аутентификация HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Безопасность" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Объект совпадения:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Подключаться только к серверам, чьи сертификаты совпадают с заданным " +"объектом.\n" +"Пример: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Использовать дополнительную аутентификацию TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Использовать дополнительную аутентификацию TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Направление ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Если используется направление ключа, оно должно быть противоположно " +"направлению, которое использует вторая сторона. Например, если вторая " +"сторона использует «1», это соединение должно использовать «0». Если вы не " +"уверены, какое значение использовать, свяжитесь с системным администратором." +"" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Файл ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Аутентификация TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Тип прокси:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Выберите этот параметр, если в вашей организации требуется использовать " +"прокси-сервер для доступа к Интернет." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Адрес сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Порт:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "Повторять бесконечно при ошибках" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Имя пользователя на прокси:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Пароль к прокси:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Показать пароль" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Прокси" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "некорректный адрес «%s»" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" +"«%s» некорректно для целочисленного свойства или вне диапазона [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "«%s» некорректно для логического свойства (не «да» или «нет»)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "свойство «%s» имеет необрабатываемый тип %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "свойство «%s» некорректно или не поддерживается" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Нет параметров настройки VPN." + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Пароль к личному ключу:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Не удалось найти исполняемый файл openvpn." + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Некорректная аутентификация HMAC." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Некорректный тип подключения." + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Некорректный номер порта «%s»." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Некорректный тип прокси «%s»." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Некорректный тип прокси «%s»." + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "Некорректный размер фрагмента «%s»." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Некорректное число секунд «%s» для пересогласования." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Некорректный размер TUN MTU «%s»." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Некорректный размер фрагмента «%s»." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" +"Отсутствует необходимый локальный IP-адрес для режима со статическим ключом." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" +"Отсутствует необходимый удалённый IP-адрес для режима со статическим ключом." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Неизвестный тип подключения «%s»." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Не удалось обработать запрос, так как настройки подключения VPN некорректны." + +#: ../src/nm-openvpn-service.c:1391 +#, fuzzy +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Не удалось обработать запрос, так как настройки подключения VPN некорректны." + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Использовать дополнительную аутентификацию TLS" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Не завершать работу при отключении VPN" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Включить подробный режим отладки (могут отображаться пароли)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "nm-openvpn-service позволяет использовать OpenVPN в NetworkManager." + +#~ msgid "_Password:" +#~ msgstr "_Пароль:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Вторичный пароль:" + +#~ msgid "Sh_ow passwords" +#~ msgstr "Показ_ывать пароли" + +#~ msgid "Use a TA_P device" +#~ msgstr "Использовать устройство TA_P" + +#~ msgid "No VPN secrets!" +#~ msgstr "Нет VPN-ключей!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "Не удалось обработать запрос, так как не указано имя пользователя." diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..5f8cdd2 --- /dev/null +++ b/po/sk.po @@ -0,0 +1,926 @@ +# Slovak translations for NetworkManager package. +# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the NetworkManager package. +# Marcel Telka , 2004, 2005, 2006. +# +# $Id: sk.po,v 1.1 2006/06/17 20:55:49 marcel Exp $ +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2006-06-17 22:54+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Overenie totožnosti:" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_Heslo:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Heslo certifikátu:" + +#: ../auth-dialog/main.c:223 +#, fuzzy +msgid "Authenticate VPN" +msgstr "Overenie totožnosti:" + +#: ../auth-dialog/main.c:232 +#, fuzzy +msgid "Certificate pass_word:" +msgstr "Heslo certifikátu:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "Manažér spojenia VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Pridať, odstrániť a upraviť VPN spojenia" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "OpenVPN klient" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "OpenVPN klient" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "Heslo certifikátu:" + +#: ../properties/nm-openvpn.c:380 +#, fuzzy +msgid "Password" +msgstr "Heslo:" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_Heslo:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "Heslo certifikátu:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "Zdieľaný kľúč" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "Heslo certifikátu:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "Heslo certifikátu:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "Meno používateľa:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "Vzdialené IP: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "Miestne IP: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "Zdieľaný kľúč" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "Použiť kompresiu LZO: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "Použiť kompresiu LZO: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "VPN spojenia" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "Šifra: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "Overenie totožnosti:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "Meno po_užívateľa:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_Heslo:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_Heslo:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "Pripojiť k:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Sekundárne heslo:" + +#~ msgid "_Domain:" +#~ msgstr "_Doména:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Pripojiť sa _anonymne" + +#~ msgid "Connect as _user:" +#~ msgstr "Pripojiť sa ako po_užívateľ:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_Zapamätať si heslo pre toto sedenie" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Uložiť heslo na zväzok kľúčov" + +#, fuzzy +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Vyberte si, ktorý typ VPN spojenia chcete vytvoriť." + +#~ msgid "Name: %s" +#~ msgstr "Meno: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Typ spojenia: X.509 certifikáty" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Cert: %s" + +#~ msgid "Key: %s" +#~ msgstr "Kľúč: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Typ spojenia: Zdieľaný kľúč" + +#~ msgid "Shared Key: %s" +#~ msgstr "Zdieľaný kľúč: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Typ spojenia: Heslo" + +#~ msgid "Username: %s" +#~ msgstr "Meno používateľa: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Typ spojenia: X.509 s overením totožnosti heslom" + +#~ msgid "Remote: %s" +#~ msgstr "Vzdialené: %s" + +#~ msgid "Device: %s" +#~ msgstr "Zariadenie: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Protokol: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Yes" +#~ msgstr "Áno" + +#~ msgid "No" +#~ msgstr "Nie" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Podrobnosti spojenia je možné zmeniť pomocou tlačidla \"Upraviť\"." + +#~ msgid "Cannot import settings" +#~ msgstr "Nepodarilo sa naimportovať nastavenia" + +#, fuzzy +#~ msgid "Optional Information" +#~ msgstr "Informácie o spojení" + +#~ msgid "Key:" +#~ msgstr "Kľúč:" + +#, fuzzy +#~ msgid "Shared key" +#~ msgstr "Zdieľaný kľúč" + +#~ msgid "none" +#~ msgstr "nič" + +#~ msgid "VPN connection failed" +#~ msgstr "VPN spojenie zlyhalo" diff --git a/po/sl.po b/po/sl.po new file mode 100644 index 0000000..035418a --- /dev/null +++ b/po/sl.po @@ -0,0 +1,913 @@ +# Slovenian translations for network-manager-openvpn. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the NetworkManager-openvpn package. +# +# Matic Žgur , 2007. +# Matej Urbančič , 2009-2013. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2014-08-06 14:40+0100\n" +"Last-Translator: Matej Urbančič \n" +"Language-Team: Slovenian GNOME Translation Team \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: Poedit 1.5.4\n" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Overi VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Geslo:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Geslo potrdila:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Overi VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "G_eslo potrdila:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Dostop do navideznega zasebnega omrežja '%s' zahteva overitev." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "Upravitelj povezav VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "Dodajanje, odstranjevanje in urejanje povezav VPN" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Izbor osebnega potrdila ..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Izbor osebnega ključa ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "Shranjeno" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "Vedno vprašaj" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "Ni zahtevano" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Izbor pooblastitelja potrdila ..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Izbor OpenVPN stalnega ključa ..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Brez" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM ali PKCS#12 potrdila (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Potrdila PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Stalni ključi OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Privzeto" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "Strežnik" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "Odjemalec" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Ni zahtevano" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "(samodejno)" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Združljivo s strežnikom OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Potrdila (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Geslo" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Geslo s potrdilom (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Stalni ključ" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "Programa openconnect ni mogoče najti" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Ni možnosti nastavitev VPN" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Splošno" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Prehod:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +#, fuzzy +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Oddaljeno ime gostitelja ali naslov IP. Dovoljeno je navajanje več " +"predmetov, ločenih vejicami.\n" +"Nastavitev: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Overitev" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "_Pokaži gesla" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Geslo za osebni ključ" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Geslo osebnega ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Osebni ključ krajevnega odjemalca v zapisu .pem.\n" +"Nastavitev: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Osebni ključ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"Datoteka overitelja potrdil (CA) v zapisu .pem.\n" +"Nastavitev: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Potrdilo CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Uporabniško potrdilo:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Podpisano potrdilo krajevnega odjemalca v zapisu .pem (podpisan s CA ali " +"potrdilom CA).\n" +"Nastavitev: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Geslo, posredovano OpenVPN, ko je zahtevano.\n" +"Nastavitev: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Uporabniško ime:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Uporabniško ime, ki je poslano na OpenVPN ob zahtevi.\n" +"Nastavitev: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Naslov IP krajevneg končne točke VPN.\n" +"Nastavitev: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Oddaljeni naslov IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Krajevni naslov IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Naslov IP oddaljene končne točke VPN.\n" +"Nastavitev: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Smer ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Stalni ključ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Souporabna datoteka za način šifriranja statičnega ključa (ne-TLS).\n" +"Nastavitev: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Smer za način šifriranja statičnega ključa (ne-TLS).\n" +"V primeru, da je uporabljena določena smer ključa, mora biti ta določena " +"nasprotno, kot je določena pri drugem odjemalcu na VPN povezavi. Primer: " +"kadar odjemalec izbere vrednost '1', mora bit ta povezava določena z " +"vrednostjo '0'. V kolikor niste prepričani, katero vrednost uporabiti, " +"stopite v stik s skrbnikom.\n" +"Nastavitev: static [smer]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Vrsta:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Izbor načina overitve." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Napredno ..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Napredne OpenVPN možnosti" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Uporabi _vrata prehoda po meri:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"Številka vrat protokola TCP/UDP za krajevnega odjemalca.\n" +"Nastavitev: vrata" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Uporabi časovni razmik _pogajanja po meri:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Ponovno vzpostavi ključ kanala po določenem času v sekundah.\n" +"Nastavitev: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Uporabi _LZO stiskanje" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Uporabi hitro stiskanje podatkov LZO.\n" +"Nastavitev: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Uporabi povezavo _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"Uporabi protokol TCP za sporočanje z oddaljenim gostiteljem.\n" +"Nastavitev: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "Nastavi vrsto navidezne _naprave:" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Nastavi vrsto in ime navidezne omrežne naprave (TAP/TUN)." + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "Nastavitev: dev-type tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "in _ime:" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Uporabi ime po meri za navidezne naprave TUN/TAP (namesto privzetih \"tun\" " +"ali \"tap\").\n" +"Nastavitev: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Uporabi enoto največjega _prenosa tuneliranja (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Nastavite MTU naprave TUN na navedeno vrednost in z nje razberite povezavo " +"MTU.\n" +"Nastavitev: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Uporabi velikost paketov UDP po meri:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Omogoči notranje razčlenjevanje podatkovnih paketov z največjo velikostjo.\n" +"Nastavitev: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Omeji velikost _paketa tuneliranja TCP (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Omeji tuneliranje TCP MSS.\n" +"Nastavitev: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "Poišči naključne _oddaljene gostitelje" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Naključno razvrščanje seznama prehodov (oddaljenih) kot osnovni način " +"prerazporejanja obremenitve.\n" +"Nastavitev: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Splošno" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifriraj pakete z algoritmom cipher. Privzeto je določen način BF-CBC " +"(Blowfish in Cipher Block Chaining mode).\n" +"Nastavitev: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "Uporabi veli_kost šifrirnega ključa po meri:" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Določite šifrirni ključ na vrednost po meri. Če ni določen, se uporabi " +"privzeta velikost glede na cifre.\n" +"Nastavitev: velikost ključa " + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Overi pakete z HMAC z uporabo algoritma izvlekča sporočila. Privzeta " +"vrednost je SHA1.\n" +"Nastavitev: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "_Cifra:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Overitev _HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Varnost" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Skladnost _zadeve:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Povezavo je varno ustvariti le s strežniki, katerih potrdila se skladajo " +"s predmetom.\n" +"Primer: /CN=mojevpn.podjetje.si" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Sprejmi le povezave z gostitelji z imeni X509 ali pa s splošnim imenom, ki " +"je enako določenemu.\n" +"Nastavitev: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Overi podpis uporabe potrdila soležnika (strežniško)" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Zahtevaj, da je potrdilo soležnika podpisano izrecno z uporabo ključa na " +"osnovi pravil RFC3280 TLS." + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "Vrsta _oddaljenega potrdila TLS soležnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Zahtevaj, da je potrdilo soležnika podpisano izrecno z uporabo ključa na " +"osnovi pravil RFC3280 TLS.\n" +"Nastavitev: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Uporabi dodatno overjanje _TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "Dodaj dodatno zaščito z overjanjem HMAC." + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "_Smer ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Dodajte dodatno raven overjanja HMAC na vrh nadzornega kanala TLS, s čimer " +"se zaščitite pred napadi DoS.\n" +"Nastavitev: tls-auth [smer]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parameter smeri za način statičnega ključa.\n" +"V primeru, da je uporabljena določena smer ključa, mora biti ta določena " +"nasprotno, kot je določena pri drugem odjemalcu na VPN povezavi. Primer: " +"kadar odjemalec izbere vrednost '1', mora bit ta povezava določena z " +"vrednostjo '0'. V kolikor niste prepričani, katero vrednost uporabiti, " +"stopite v stik s skrbnikom.\n" +"Nastavitev: tls-auth [smer]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Datoteka _ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Overitev TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Vrsta posredniškega strežnika: HTTP ali SOCKS.\n" +"Nastavitev: http-proxy ali socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "_Vrsta posredniškega strežnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Možnost je treba izbrati, če je za dostop do medmrežja zahtevana uporaba " +"posredniškega strežnika." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Naslov _strežnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Poveže se z oddaljenim gostiteljem prek posredovalnega strežnika s tem " +"naslovom.\n" +"Nastavitev: http-proxy ali socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "_Vrata:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Poveže se z oddaljenim gostiteljem prek posredovalnega strežnika s temi " +"vrati.\n" +"Nastvitev: http-proxy ali socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "Ob napakah poskušaj dejanje ponoviti v _nedogled" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Ob napakah posredovalnega strežnika poskušaj brez konca. Izvede navidezno " +"ponastavitev SIGUSR1.\n" +"Nastavitev: http-proxy-retry ali socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "_Uporabniško ime posredniškega strežnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Geslo _posredniškega strežnika:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Uporabniško ime posredniškega stražnika HTTP/SOCKS za OpenVPN ob zahtevi." + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"Geslo posredovalnega strežnika HTTP/Socks, posredovano OpenVPN, ko je " +"zahtevano." + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "_Pokaži geslo" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Posredniški strežniki" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "neveljaven naslov '%s'" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" +"neveljavna lastnost celega števila '%s', ki je izven območja [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "neveljavna logična lastnost '%s' (ni vrednost da oziroma ne)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "neupravljana lastnost '%s' vrste %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "lastnost '%s' ni veljavna ali pa ni podprta" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "Ni možnosti nastavitev VPN" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "Uporabniško ime je obvezno." + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "Geslo je obvezno." + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "Uporabniško ime in geslo sta obvezna." + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "Zahtevano je geslo zasebnega ključa." + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "Zahtevano je uporabniško ime posredovalnega strežnika HTTP." + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "Zahtevano je geslo posredovalnega strežnika HTTP." + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "Zahtevana sta uporabniško ime in geslo posredovalnega strežnika HTTP." + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "Programa openconnect ni mogoče najti" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "Neveljavna overitev HMAC." + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "Neveljavna vrsta povezave" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Neveljavna številka vrat '%s'." + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "Neveljavna vrsta posredniškega strežnika '%s'." + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Neveljavna vrsta posredniškega strežnika '%s'." + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Neveljavna velikost ključa '%s'." + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Neveljavna časovna vrednost obnovitve '%s'." + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Neveljavna velikost TUN MTU '%s'." + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Neveljavna velikost delčkov '%s'." + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "Manjka zahtevan naslov IP za statični način ključa." + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "Manjka zahtevan oddaljen naslov IP za statični način ključa." + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Neznana vrsta povezave '%s'." + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "Zahteve ni mogoče izvesti, ker so nastavitve povezave VPN neveljavne." + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" +"Zahteve ni mogoče izvesti, ker so nastavitve povezave OpenVPN neveljavne." + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "Neobravnavana overitev na čakanju." + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "Ne končaj, ko se povezava VPN zaustavi" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Omogoči podrobno beleženje razhroščevanja (lahko razkrije gesla)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"Storitev nm-openvpn-service omogoča podporo OpenVPN znotraj programa " +"NetworkManager." + +#~ msgid "Use a TA_P device" +#~ msgstr "Uporabi napravo _TAP" diff --git a/po/sr.po b/po/sr.po new file mode 100644 index 0000000..bf35459 --- /dev/null +++ b/po/sr.po @@ -0,0 +1,1460 @@ +# Serbian translation for network-manager-openvpn. +# Courtesy of Prevod.org team (http://prevod.org/) -- 2013—2017. +# Copyright © 2013 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# Translators: +# Мирослав Николић , 2013—2017. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=Networ" +"kManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-07-11 16:01+0000\n" +"PO-Revision-Date: 2017-08-13 10:40+0200\n" +"Last-Translator: Мирослав Николић \n" +"Language-Team: српски \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "ОпенВПН клијент" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Клијент за виртуелне приватне мреже кроз ОпенВПН" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Подршка за подешавање повезивања у виртуелним приватним мрежама кроз ОпенВПН." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "ОпенВПН је популаран, прилагодљив и слободан програм за ВПН." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Развојни тим Управника мреже" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Потврди ВПН %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Лозинка:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Лозинка уверења:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Лозинка ХТТП посредника:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Потврди ВПН" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Лозинка _уверења:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Лозинка _ХТТП посредника:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Морате да потврдите идентитет да бисте могли да приступите виртуелној " +"приватној мрежи „%s“." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Изаберите ОпенВПН статички кључ…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Ништа" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "ОпенВПН статички кључ (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Основно" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "РСА-МД-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "МД-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "СХА-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "СХА‑224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "СХА‑256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "СХА‑384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "СХА‑512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "РИПЕМД‑160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Не проверавај препознавање уверења" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Провери читав субјекат тачно" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Провери назив тачно" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Провери име према префиксу" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Провери субјекат делимично (стари режим, не препоручује се никако)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Сервер" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Клијент" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Непотребно" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "ХТТП" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "СОЦКС" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "ТУН" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "ТАП" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(самостално)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "излаз пинга" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "поновно покретање пинга" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "опција „%s“ очекује између %u и %u аргумента" +msgstr[1] "опција „%s“ очекује између %u и %u аргумента" +msgstr[2] "опција „%s“ очекује између %u и %u аргуменaта" +msgstr[3] "опција „%s“ очекује између %u и %u аргумента" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "опција „%s“ не очекује аргументе" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "опција „%s“ очекује тачно %u аргумент" +msgstr[1] "опција „%s“ очекује тачно %u аргументa" +msgstr[2] "опција „%s“ очекује тачно %u аргуменaтa" +msgstr[3] "опција „%s“ очекује тачно један аргумент" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "аргумент „%s“ за „%s“ не може бити празан" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "аргумент за „%s“ не може бити празан" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "аргумент „%s“ за „%s“ мора бити у УТФ-8 кодирању" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "аргумент за „%s“ мора бити у УТФ-8 кодирању" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "неисправан %u. аргумент за „%s“ где је очекиван број" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "неподржан %u. аргумент „%s“ за „%s“" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"неподржан %u. аргумент за „%s“ који изгледа као ФКуДН али је подржана само " +"ИПв4 адреса" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "неисправан %u. аргумент за „%s“ где је очекивана ИПв4 адреса" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "неисправан %u. аргумент правца кључа за „%s“" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "неисправан %u. аргумент за „%s“" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "неокончано „%s“ на %lld. положају" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "двоструки наводници" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "једноструки наводник" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "пратећа контра коса црта краја реда на %lld. положају" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "не могу да прочитам датотеку овлашћења ХТТП посредника" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"не могу да прочитам корисника/лозинку из датотеке овлашћења ХТТП посредника" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"корисник/лозинка из датотеке овлашћења ХТТП посредника мора бити у УТФ-8 " +"кодирању" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s“ није директоријум" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "не могу да направим „%s“ директоријум" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "не могу да запишем <%s> блоб из %ld. реда у датотеку (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "не могу да запишем <%s> блоб из %ld. реда у датотеку (%s)" + +#: ../properties/import-export.c:933 +#, c-format +#| msgid "unsupported comp-lzo argument" +msgid "unsupported mtu-disc argument" +msgstr "неподржан аргумент „mtu-disc“" + +#: ../properties/import-export.c:944 ../properties/import-export.c:1303 +#, c-format +msgid "invalid option" +msgstr "неисправна опција" + +#: ../properties/import-export.c:983 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "неподржан аргумент „comp-lzo“" + +#: ../properties/import-export.c:1079 +#, c-format +msgid "remote cannot contain space" +msgstr "удаљени не може да садржи размак" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain comma" +msgstr "удаљени не може да садржи зарез" + +#: ../properties/import-export.c:1094 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "удаљени очекује или протокол „udp“ или „remote“" + +#: ../properties/import-export.c:1287 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "неисправна врста провере-x509-назива" + +#: ../properties/import-export.c:1430 +#, c-format +msgid "unsupported blob/xml element" +msgstr "неподржани елемент блоб/иксмл" + +#: ../properties/import-export.c:1459 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "неокончани елемент блоба <%s>" + +#: ../properties/import-export.c:1518 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "грешка подешавања: %s (%ld. ред)" + +#: ../properties/import-export.c:1519 +msgid "unknown or unsupported option" +msgstr "непозната или неподржана опција" + +#: ../properties/import-export.c:1529 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Датотека за увоз није исправно подешавање ОпенВПН клијента" + +#: ../properties/import-export.c:1537 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "Датотека за увоз није исправно ОпенВПН подешавање (нема удаљеног)" + +#: ../properties/import-export.c:1769 +msgid "missing path argument" +msgstr "недостаје аргумент са путањом" + +#: ../properties/import-export.c:1779 +msgid "connection is not a valid OpenVPN connection" +msgstr "веза није исправна ОпенВПН веза" + +#: ../properties/import-export.c:1788 +msgid "connection was incomplete (missing gateway)" +msgstr "веза беше непотпуна (недостаје мрежни пролаз)" + +#: ../properties/import-export.c:2127 +#, c-format +msgid "failed to write file: %s" +msgstr "нисам успео да упишем датотеку: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "ОпенВПН" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Сагласно са ОпенВПН сервером." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "непознато проширење ОпенВПН датотеке" + +#: ../properties/nm-openvpn-editor.c:298 +msgid "Certificates (TLS)" +msgstr "Уверења (ТЛС)" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Password" +msgstr "Лозинка" + +#: ../properties/nm-openvpn-editor.c:322 +msgid "Password with Certificates (TLS)" +msgstr "Лозинка са уверењима (ТЛС)" + +#: ../properties/nm-openvpn-editor.c:334 +msgid "Static Key" +msgstr "Статички кључ" + +#: ../properties/nm-openvpn-editor.c:488 +msgid "could not create openvpn object" +msgstr "не могу да направим опенвпн објекат" + +#: ../properties/nm-openvpn-editor.c:505 +msgid "could not load UI widget" +msgstr "не могу да учитам елемент сучеља" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "класа објекта „%s“ нема својство са називом „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "својство „%s“ класе објекта „%s“ није уписиво" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "својство творбе „%s“ за објекат „%s“ се не може поставити након творбе" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "„%s::%s“ није исправан назив својства; „%s“ није подврста Гобјекта" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "не могу да поставим својство „%s“ врсте „%s“ из вредности врсте „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"вредност „%s“ врсте „%s“ није исправна или је ван опсега за својство „%s“ " +"врсте „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "недостаје датотека прикључка „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "не могу да учитам прикључак уређивача: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "не могу да учитам погон „%s“ из прикључка: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "непозната грешка приликом стварања примерка уређивача" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "неисправна адреса „%s“" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "неисправно својство целог броја „%s“ или је ван опсега [%d → %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "неисправно логичко својство „%s“ (није „yes“ (да) или „no“ (не))" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "неруковано својство „%s“ врсте %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "својство „%s“ је неисправно или није подржано" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Нема опција ВПН подешавања." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Потребно је корисничко име." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Потребна је лозинка." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Потребни су корисничко име и лозинка." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Потребна је лозинка приватног кључа." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Потребно је корисничко име ХТТП посредника." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Потребна је лозинка ХТТП посредника." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Потребни су корисничко име и лозинка ХТТП посредника." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2058 +#: ../src/nm-openvpn-service.c:2092 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "Не могу да обрадим захтев због неисправних подешавања ВПН везе." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2067 +msgid "Invalid connection type." +msgstr "Неисправна врста везе." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Не могу да пронађем опенвпн извршни." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Неисправно ХМАЦ потврђивање идентитета." + +#: ../src/nm-openvpn-service.c:1354 ../src/nm-openvpn-service.c:1362 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Неисправан број прикључника „%s“." + +#: ../src/nm-openvpn-service.c:1378 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Неисправан протокол „%s“." + +#: ../src/nm-openvpn-service.c:1420 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Неисправна врста посредника „%s“." + +#: ../src/nm-openvpn-service.c:1468 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Неисправно трајање пинга „%s“." + +#: ../src/nm-openvpn-service.c:1481 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Неисправно трајање изласка пинга „%s“." + +#: ../src/nm-openvpn-service.c:1494 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Неисправно трајање поновног покретања пинга „%s“." + +#: ../src/nm-openvpn-service.c:1513 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Неисправан аргумент највише рута „%s“." + +#: ../src/nm-openvpn-service.c:1568 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Неисправна величина кључа „%s“." + +#: ../src/nm-openvpn-service.c:1625 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Неисправно подешавање са „tls-remote“ и „verify-x509-name“." + +#: ../src/nm-openvpn-service.c:1639 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Није исправна провера-x509-назива." + +#: ../src/nm-openvpn-service.c:1673 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Неисправан број секунди поновног преговарања „%s“." + +#: ../src/nm-openvpn-service.c:1705 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Неисправна ТУН МТУ величина „%s“." + +#: ../src/nm-openvpn-service.c:1719 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Неисправна величина одломка „%s“." + +#: ../src/nm-openvpn-service.c:1831 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Непозната врста везе „%s“." + +#: ../src/nm-openvpn-service.c:1850 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Нисам нашао корисника „%s“, проверите „NM_OPENVPN_USER“." + +#: ../src/nm-openvpn-service.c:1863 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Нисам нашао групу „%s“, проверите „NM_OPENVPN_GROUP“." + +#: ../src/nm-openvpn-service.c:2105 +msgid "Unhandled pending authentication." +msgstr "Непознато потврђивање идентитета на чекању." + +#: ../src/nm-openvpn-service.c:2224 +msgid "Don’t quit when VPN connection terminates" +msgstr "Не прекида када се завршава ВПН веза" + +#: ../src/nm-openvpn-service.c:2225 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Укључује опширно записивање зарад исправљања грешака (може да изложи лозинке)" + +#: ../src/nm-openvpn-service.c:2226 +msgid "D-Bus name to use for this instance" +msgstr "Назив Д-сабирнице који ће се користити за овај примерак" + +#: ../src/nm-openvpn-service.c:2252 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"нм-опенвпн-услуга обезбеђује Управнику мреже обједињену ОпенВПН могућност." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "ТЛС-потврда" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "ТЛС-шифровање" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Можда" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Да" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Опште" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Мрежни пролаз:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Удаљени мрежни пролаз(и), са изборним прикључником и протоколом (нпр. „ovpn." +"corp.com:1234:tcp“). Можете да наведете више ставки зарад изобиља (користите " +"зарезе да раздвојите уносе).\n" +"подешавање: „remote“" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Потврђивање идентитета" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Корисничко име:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Лозинка прослеђена ОпенВПН-у када је затражена.\n" +"подешавање: „auth-user-pass“" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Корисничко име прослеђено ОпенВПН-у када је затражено.\n" +"подешавање: „auth-user-pass“" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Удаљена ИП адреса:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Месна ИП адреса:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Усмерење кључа:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Статички кључ:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Пред-дељена датотека за режим шифровања статичког кључа (не-ТЛС).\n" +"подешавање: „static <датотека>“" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"ИП адреса крајње тачке удаљеног ВПН-а.\n" +"подешавање: „ifconfig “" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"ИП адреса крајње тачке месног ВПН-а.\n" +"подешавање: „ifconfig “" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Усмерење за режим шифровања статичког кључа (не-ТЛС).\n" +"Ако користите усмерење кључа, мора бити супротно од оног коришћеног на ВПН " +"парњаку. На пример, ако парњак користи „1“, ова веза мора да користи „0“. " +"Ако нисте сигурни коју вредност да користите, посавејтујте се са " +"администратором система.\n" +"подешавање: „static <датотека> [усмерење]“" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Врста:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Изаберите режим потврђивања идентитета." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "_Напредно…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Напредне опције за ОпенВПН" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Користи произвољни _прикључник мрежног пролаза:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Број ТЦП/УДП прикључника за парњака. (Основна вредност када нема прикључника " +"за мрежни пролаз).\n" +"подешавање: „port“" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Користи произвољан период поновног _преговарања:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Поново преговарајте кључ канала података након наведеног броја секунди.\n" +"подешавање: „reneg-sec“" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Користи _ЛЗО сажимање података" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Користите брзо ЛЗО сажимање.\n" +"подешавање: „comp-lzo“" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Изаберите ЛЗО режим паковања података.\n" +"подешавање: „comp-lzo“" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Користи _ТЦП везу" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Користите ТЦП за комуницирање са удаљеним домаћином.\n" +"(Ово је основно подешавање које се користи само када није наведен протокол " +"за мрежни пролаз.)\n" +"подешавање: „proto tcp-client | udp“" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Подеси врсту виртуелног _уређаја:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Изричито подесите врсту виртуелног уређаја и назив (ТУН/ТАП)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Изричито подесите врсту виртуелног уређаја (ТУН/ТАП).\n" +"подешавање: „dev-type tun | tap“" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " и _назив:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Користите произвољан назив за ТУН/ТАП виртуелни уређај (уместо основног " +"„tun“ или „tap“).\n" +"подешавање: dev „<назив>“" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Користи _јединицу највећег преноса (МТУ) произвољног канала:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Поставите МТУ ТУН уређаја да буде наведена вредност и изведите МТУ везе из " +"ње.\n" +"подешавање: „tun-mtu“" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Користи величину _одломка произвољног УДП-а:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Укључите подељеност унутрашњег датограма са овом највећом величином.\n" +"подешавање: „fragment“" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ограничи највећу величину _одсечка ТЦП тунела (МСС)" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Ограничите ТЦП МСС тунела.\n" +"подешавање: „mssfix“" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "_Измешај удаљене домаћине" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Измешајте редослед списка мрежних пролаза (удаљено) као врсту мере основног " +"уравнотежења отпремања.\n" +"подешавање: „remote-random“" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "Веза ИПв6 тун-а" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Изгради тун везу која може да проследи ИПв6 саобраћај\n" +"подешавање: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Наведи пинг _изласка или поновног покретања:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Излази или поново покреће након n секунде протекле без пријема пинга или " +"другог пакета са удаљеног.\n" +"подешавање: „ping-exit | ping-restart “" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Наведи интервал _пинга:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Пингује удаљеног преко ТЦП/УДП контролног канала ако ниједан пакет није " +"послат за најмање n секунде.\n" +"подешавање: „ping “" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Прихвати проверене пакете са било које адресе (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Омогућава удаљеном парњаку да промени своју ИП адресу и/или број " +"прикључника, као услед ДХЦП-а (ово је основно ако се не користи „--remote“). " +"„--float“ када је наведено са „--remote“ омогућава ОпенВПН сесији да се прво " +"повеже са парњаком на познатој адреси, међутим ако пакети стижу са нове " +"адресе и прођу све тестове потврђивања идентитета, нова адреса ће преузети " +"контролу над сесијом. Овоје корисно када се повезујете са парњаком који држи " +"динамичку адресу као што је корисник двојне парице или ДХЦП клијент.\n" +"\n" +"У основи, „--float“ говори ОпенВПН-у да прихвати проверене пакете са било " +"које адресе, а не само са адресе која је наведена у опцији „--remote“.\n" +"\n" +"подешавање: „float“" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Наведите највише руте:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Наведите највећи број рута које сервер може да наведе.\n" +"подешавање: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Шифрујте пакете алгоритмом шифровања. Основни је БФ-ЦБЦ (Блауфиш у режиму " +"уланчавања блока шифре).\n" +"подешавање: „cipher“" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Користи произвољну _величину кључа шифровања:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Подесите величину кључа шифровања на произвољну вредност. Ако није наведено, " +"подразумева посебну величину шифровања.\n" +"подешавања: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Потврдите идентитет пакета ХМАЦ-ом користећи алгоритам извода поруке. " +"Основни је СХА1.\n" +"подешавање: „auth“" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "_Шифра:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_ХМАЦ потврђивање идентитета:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Безбедност" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "_Поклапање наслова:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Субјекат или општи назив за проверу података о уверењу сервера.\n" +"\n" +"подешавање: verify-x509-name субјекат-или-назив [режим]\n" +"подешавање (стари режим): tls-remote субјекат-или-назив" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Провера _уверења сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +#| msgid "" +#| "Verify server certificate identification.\n" +#| "\n" +#| "When enabled, connection will only succeed if the server certificate " +#| "matches some expected properties.\n" +#| "Matching can either apply to the whole certificate subject (all the " +#| "fields),\n" +#| "or just the Common Name (CN field).\n" +#| "\n" +#| "config: verify-x509-name subject-or-name [mode]\n" +#| "config (legacy mode): tls-remote subject-or-name" +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Проверите препознавање уверења сервера.\n" +"\n" +"Када је укључено, повезивање ће успети само ако уверење сервера одговара " +"неким очекиваним својствима.\n" +"Упоређивање се може применити на читав субјекат уверења (сва поља),\n" +"или само на општи назив (ЦН поље).\n" +"\n" +"Стара опција „tls-remote“ је застарела и уклоњена из ОпенВПН-а 2.4 и " +"новијег. Не користите је више.\n" +"\n" +"подешавање: verify-x509-name субјекат-или-назив [режим]\n" +"подешавање (стари режим): tls-remote субјекат-или-назив" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Провери потпис коришћења уверења парњака (сервера)" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Захтевајте да уверење парњака буде потписано коришћењем изричитог кључа и " +"коришћењем проширеног кључа заснованог на РФЦ3280 ТЛС правилима." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "_Врста ТЛС уверења удаљеног парњака:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Захтевајте да уверење парњака буде потписано коришћењем изричитог кључа и " +"коришћењем проширеног кључа заснованог на РФЦ3280 ТЛС правилима.\n" +"подешавање: „remote-cert-tls client|server“" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Провери ознаку nsCertType уверења парњака (сервера)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Захтевај да уверење парњака буде потписан са изричитом nsCertType ознаком." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Ознака nsCert уве_рења удаљеног парњака:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Захтевајте да уверење парњака буде потписано са изричитом nsCertType " +"ознаком.\n" +"подешавање: „ns-cert-type client|server“" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "_Усмерење кључа:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Додајте допунски слој ХМАЦ потврде идентитета на врх ТЛС управљачког канала " +"да се заштитите од ДоС напада.\n" +"подешавање: „tls-auth <датотека> [усмерење]“" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Параметри усмерења за режим статичког кључа.\n" +"Ако користите усмерење кључа, мора бити супротно од оног коришћеног на ВПН " +"парњаку. На пример, ако парњак користи „1“, ова веза мора да користи „0“. " +"Ако нисте сигурни коју вредност да користите, посавејтујте се са " +"администратором система.\n" +"подешавање: „tls-auth <датотека> [усмерење]“" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "_Датотека кључа:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Режим" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +#| msgid "Add an additional layer of HMAC authentication." +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Додајте допунски слој шифровања или ХМАЦ потврде идентитета." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +#| msgid "Use additional _TLS authentication" +msgid "Additional TLS authentication or encryption" +msgstr "Допунско ТЛС потврђивање идентитета или шифровање" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "ТЛС потврђивање идентитета" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Врста посредника: ХТТП или Соцкс.\n" +"подешавање: „http-proxy“ или „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Врста _посредника:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Изаберите ову опцију ако ваше удружење захтева употребу посредничког " +"сервера за приступање Интернету." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "_Адреса сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Повежите се на удаљеног домаћина путем посредника са овом адресом.\n" +"подешавање: „http-proxy“ или „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "_Прикључник:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Повежите се на удаљеног домаћина путем посредника са овим прикључником.\n" +"подешавање: „http-proxy“ или „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "_Непрекидно покушавај кад дође до грешака" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Покушавајте непрекидно при грешкама посредника. Ово симулира СИГУСР1 поновно " +"постављање.\n" +"подешавање: „http-proxy-retry“ или „socks-proxy-retry“" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Корисничко _име за посредника:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Лозинка _посредника:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Корисничко име ХТТП/Соцкс посредника прослеђено ОпенВПН-у када је затражено." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Лозинка ХТТП/Соцкс посредника прослеђена ОпенВПН-у када је затражено." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "_Прикажи лозинку" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Посредници" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Откривање мту путање" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Разно" + +#~ msgid "Choose your personal certificate…" +#~ msgstr "Изаберите лично уверење…" + +#~ msgid "Choose your private key…" +#~ msgstr "Изаберите лични кључ…" + +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Изаберите уверење издавача овлашћења…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "ПЕМ или ПКЦС#12 уверења (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "ПЕМ уверења (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Недостаје захтевана месна ИП адреса за режим статичког кључа." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Недостаје захтевана удаљена ИП адреса за режим статичког кључа." + +#~ msgid "_Show passwords" +#~ msgstr "_Прикажи лозинке" + +#~ msgid "Password for private key" +#~ msgstr "Лозинка личног кључа" + +#~ msgid "Private Key Password:" +#~ msgstr "Лозинка приватног кључа:" + +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Лични кључ месног парњака у „.pem“ облику.\n" +#~ "подешавање: „key“" + +#~ msgid "Private Key:" +#~ msgstr "Лични кључ:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Датотека издавача уверења (CA) у „.pem“ облику.\n" +#~ "подешавање: „ca“" + +#~ msgid "CA Certificate:" +#~ msgstr "Уверење издавача уверења:" + +#~ msgid "User Certificate:" +#~ msgstr "Корисничко уверење:" + +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Потписано уверење месног парњака у „.pem“ облику (које потписује издавач " +#~ "уверења уверења издавача уверења).\n" +#~ "подешавање: „cert“" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "не могу да запишем <%s> блоб из %ld. реда у датотеку „%s“" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "Не могу да обрадим захтев због неисправне врсте везе опенвпн-а." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Опште" + +#~ msgid "Authentication" +#~ msgstr "Потврда идентитета" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Повежите се само са серверима чија уверења одговарају датом наслову.\n" +#~ "Пример: /CN=myvpn.company.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Прихватите везе само са домаћина са називом Икс509 или са општим називом " +#~ "који је исти са оним наведеним.\n" +#~ "подешавање: „tls-remote“" + +#~ msgid "could not open file for writing" +#~ msgstr "не могу да отворим датотеку за писање" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "опција „%s“ очекује тачно %u аргумента" + +#~ msgid "empty %s service argument" +#~ msgstr "празан аргумент „%s“ услуге" + +#~ msgid "missing certificate file name" +#~ msgstr "недостаје назив датотеке уверења" + +#~ msgid "empty tls-remote argument" +#~ msgstr "празан аргумент тлс-удаљеног" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Управник ВПН веза (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Додајте, уклањајте и уређујте ВПН везе" + +#~ msgid "Saved" +#~ msgstr "Сачувано" + +#~ msgid "Always Ask" +#~ msgstr "Питај увек" + +#~ msgid "Not Required" +#~ msgstr "Није неопходно" + +#~ msgid "Use a TA_P device" +#~ msgstr "Користи ТА_П уређај" diff --git a/po/sr@latin.po b/po/sr@latin.po new file mode 100644 index 0000000..5cc0d92 --- /dev/null +++ b/po/sr@latin.po @@ -0,0 +1,1460 @@ +# Serbian translation for network-manager-openvpn. +# Courtesy of Prevod.org team (http://prevod.org/) -- 2013—2017. +# Copyright © 2013 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# Translators: +# Miroslav Nikolić , 2013—2017. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=Networ" +"kManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-07-11 16:01+0000\n" +"PO-Revision-Date: 2017-08-13 10:40+0200\n" +"Last-Translator: Miroslav Nikolić \n" +"Language-Team: srpski \n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Project-Style: gnome\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN klijent" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klijent za virtuelne privatne mreže kroz OpenVPN" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Podrška za podešavanje povezivanja u virtuelnim privatnim mrežama kroz OpenVPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN je popularan, prilagodljiv i slobodan program za VPN." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Razvojni tim Upravnika mreže" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Potvrdi VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Lozinka:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Lozinka uverenja:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Lozinka HTTP posrednika:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Potvrdi VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Lozinka _uverenja:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Lozinka _HTTP posrednika:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Morate da potvrdite identitet da biste mogli da pristupite virtuelnoj " +"privatnoj mreži „%s“." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Izaberite OpenVPN statički ključ…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Ništa" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN statički ključ (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Osnovno" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA-MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA‑224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA‑256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA‑384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA‑512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD‑160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Ne proveravaj prepoznavanje uverenja" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Proveri čitav subjekat tačno" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Proveri naziv tačno" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Proveri ime prema prefiksu" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Proveri subjekat delimično (stari režim, ne preporučuje se nikako)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Klijent" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Nepotrebno" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(samostalno)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "izlaz pinga" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ponovno pokretanje pinga" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "opcija „%s“ očekuje između %u i %u argumenta" +msgstr[1] "opcija „%s“ očekuje između %u i %u argumenta" +msgstr[2] "opcija „%s“ očekuje između %u i %u argumenata" +msgstr[3] "opcija „%s“ očekuje između %u i %u argumenta" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "opcija „%s“ ne očekuje argumente" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "opcija „%s“ očekuje tačno %u argument" +msgstr[1] "opcija „%s“ očekuje tačno %u argumenta" +msgstr[2] "opcija „%s“ očekuje tačno %u argumenata" +msgstr[3] "opcija „%s“ očekuje tačno jedan argument" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argument „%s“ za „%s“ ne može biti prazan" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argument za „%s“ ne može biti prazan" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argument „%s“ za „%s“ mora biti u UTF-8 kodiranju" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argument za „%s“ mora biti u UTF-8 kodiranju" + +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "neispravan %u. argument za „%s“ gde je očekivan broj" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "nepodržan %u. argument „%s“ za „%s“" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"nepodržan %u. argument za „%s“ koji izgleda kao FKuDN ali je podržana samo " +"IPv4 adresa" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "neispravan %u. argument za „%s“ gde je očekivana IPv4 adresa" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "neispravan %u. argument pravca ključa za „%s“" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "neispravan %u. argument za „%s“" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "neokončano „%s“ na %lld. položaju" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "dvostruki navodnici" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "jednostruki navodnik" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "prateća kontra kosa crta kraja reda na %lld. položaju" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "ne mogu da pročitam datoteku ovlašćenja HTTP posrednika" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" +"ne mogu da pročitam korisnika/lozinku iz datoteke ovlašćenja HTTP posrednika" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" +"korisnik/lozinka iz datoteke ovlašćenja HTTP posrednika mora biti u UTF-8 " +"kodiranju" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "„%s“ nije direktorijum" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "ne mogu da napravim „%s“ direktorijum" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "ne mogu da zapišem <%s> blob iz %ld. reda u datoteku (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "ne mogu da zapišem <%s> blob iz %ld. reda u datoteku (%s)" + +#: ../properties/import-export.c:933 +#, c-format +#| msgid "unsupported comp-lzo argument" +msgid "unsupported mtu-disc argument" +msgstr "nepodržan argument „mtu-disc“" + +#: ../properties/import-export.c:944 ../properties/import-export.c:1303 +#, c-format +msgid "invalid option" +msgstr "neispravna opcija" + +#: ../properties/import-export.c:983 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "nepodržan argument „comp-lzo“" + +#: ../properties/import-export.c:1079 +#, c-format +msgid "remote cannot contain space" +msgstr "udaljeni ne može da sadrži razmak" + +#: ../properties/import-export.c:1083 +#, c-format +msgid "remote cannot contain comma" +msgstr "udaljeni ne može da sadrži zarez" + +#: ../properties/import-export.c:1094 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "udaljeni očekuje ili protokol „udp“ ili „remote“" + +#: ../properties/import-export.c:1287 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "neispravna vrsta provere-x509-naziva" + +#: ../properties/import-export.c:1430 +#, c-format +msgid "unsupported blob/xml element" +msgstr "nepodržani element blob/iksml" + +#: ../properties/import-export.c:1459 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "neokončani element bloba <%s>" + +#: ../properties/import-export.c:1518 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "greška podešavanja: %s (%ld. red)" + +#: ../properties/import-export.c:1519 +msgid "unknown or unsupported option" +msgstr "nepoznata ili nepodržana opcija" + +#: ../properties/import-export.c:1529 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Datoteka za uvoz nije ispravno podešavanje OpenVPN klijenta" + +#: ../properties/import-export.c:1537 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "Datoteka za uvoz nije ispravno OpenVPN podešavanje (nema udaljenog)" + +#: ../properties/import-export.c:1769 +msgid "missing path argument" +msgstr "nedostaje argument sa putanjom" + +#: ../properties/import-export.c:1779 +msgid "connection is not a valid OpenVPN connection" +msgstr "veza nije ispravna OpenVPN veza" + +#: ../properties/import-export.c:1788 +msgid "connection was incomplete (missing gateway)" +msgstr "veza beše nepotpuna (nedostaje mrežni prolaz)" + +#: ../properties/import-export.c:2127 +#, c-format +msgid "failed to write file: %s" +msgstr "nisam uspeo da upišem datoteku: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Saglasno sa OpenVPN serverom." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "nepoznato proširenje OpenVPN datoteke" + +#: ../properties/nm-openvpn-editor.c:298 +msgid "Certificates (TLS)" +msgstr "Uverenja (TLS)" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Password" +msgstr "Lozinka" + +#: ../properties/nm-openvpn-editor.c:322 +msgid "Password with Certificates (TLS)" +msgstr "Lozinka sa uverenjima (TLS)" + +#: ../properties/nm-openvpn-editor.c:334 +msgid "Static Key" +msgstr "Statički ključ" + +#: ../properties/nm-openvpn-editor.c:488 +msgid "could not create openvpn object" +msgstr "ne mogu da napravim openvpn objekat" + +#: ../properties/nm-openvpn-editor.c:505 +msgid "could not load UI widget" +msgstr "ne mogu da učitam element sučelja" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "klasa objekta „%s“ nema svojstvo sa nazivom „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "svojstvo „%s“ klase objekta „%s“ nije upisivo" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "svojstvo tvorbe „%s“ za objekat „%s“ se ne može postaviti nakon tvorbe" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "„%s::%s“ nije ispravan naziv svojstva; „%s“ nije podvrsta Gobjekta" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "ne mogu da postavim svojstvo „%s“ vrste „%s“ iz vrednosti vrste „%s“" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"vrednost „%s“ vrste „%s“ nije ispravna ili je van opsega za svojstvo „%s“ " +"vrste „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "nedostaje datoteka priključka „%s“" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "ne mogu da učitam priključak uređivača: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "ne mogu da učitam pogon „%s“ iz priključka: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "nepoznata greška prilikom stvaranja primerka uređivača" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "neispravna adresa „%s“" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "neispravno svojstvo celog broja „%s“ ili je van opsega [%d → %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "neispravno logičko svojstvo „%s“ (nije „yes“ (da) ili „no“ (ne))" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "nerukovano svojstvo „%s“ vrste %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "svojstvo „%s“ je neispravno ili nije podržano" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Nema opcija VPN podešavanja." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Potrebno je korisničko ime." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Potrebna je lozinka." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Potrebni su korisničko ime i lozinka." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Potrebna je lozinka privatnog ključa." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Potrebno je korisničko ime HTTP posrednika." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Potrebna je lozinka HTTP posrednika." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Potrebni su korisničko ime i lozinka HTTP posrednika." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2058 +#: ../src/nm-openvpn-service.c:2092 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "Ne mogu da obradim zahtev zbog neispravnih podešavanja VPN veze." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2067 +msgid "Invalid connection type." +msgstr "Neispravna vrsta veze." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Ne mogu da pronađem openvpn izvršni." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Neispravno HMAC potvrđivanje identiteta." + +#: ../src/nm-openvpn-service.c:1354 ../src/nm-openvpn-service.c:1362 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Neispravan broj priključnika „%s“." + +#: ../src/nm-openvpn-service.c:1378 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Neispravan protokol „%s“." + +#: ../src/nm-openvpn-service.c:1420 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Neispravna vrsta posrednika „%s“." + +#: ../src/nm-openvpn-service.c:1468 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Neispravno trajanje pinga „%s“." + +#: ../src/nm-openvpn-service.c:1481 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Neispravno trajanje izlaska pinga „%s“." + +#: ../src/nm-openvpn-service.c:1494 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Neispravno trajanje ponovnog pokretanja pinga „%s“." + +#: ../src/nm-openvpn-service.c:1513 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Neispravan argument najviše ruta „%s“." + +#: ../src/nm-openvpn-service.c:1568 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Neispravna veličina ključa „%s“." + +#: ../src/nm-openvpn-service.c:1625 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Neispravno podešavanje sa „tls-remote“ i „verify-x509-name“." + +#: ../src/nm-openvpn-service.c:1639 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Nije ispravna provera-x509-naziva." + +#: ../src/nm-openvpn-service.c:1673 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Neispravan broj sekundi ponovnog pregovaranja „%s“." + +#: ../src/nm-openvpn-service.c:1705 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Neispravna TUN MTU veličina „%s“." + +#: ../src/nm-openvpn-service.c:1719 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Neispravna veličina odlomka „%s“." + +#: ../src/nm-openvpn-service.c:1831 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Nepoznata vrsta veze „%s“." + +#: ../src/nm-openvpn-service.c:1850 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Nisam našao korisnika „%s“, proverite „NM_OPENVPN_USER“." + +#: ../src/nm-openvpn-service.c:1863 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Nisam našao grupu „%s“, proverite „NM_OPENVPN_GROUP“." + +#: ../src/nm-openvpn-service.c:2105 +msgid "Unhandled pending authentication." +msgstr "Nepoznato potvrđivanje identiteta na čekanju." + +#: ../src/nm-openvpn-service.c:2224 +msgid "Don’t quit when VPN connection terminates" +msgstr "Ne prekida kada se završava VPN veza" + +#: ../src/nm-openvpn-service.c:2225 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Uključuje opširno zapisivanje zarad ispravljanja grešaka (može da izloži lozinke)" + +#: ../src/nm-openvpn-service.c:2226 +msgid "D-Bus name to use for this instance" +msgstr "Naziv D-sabirnice koji će se koristiti za ovaj primerak" + +#: ../src/nm-openvpn-service.c:2252 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-usluga obezbeđuje Upravniku mreže objedinjenu OpenVPN mogućnost." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-potvrda" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-šifrovanje" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Možda" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Da" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Opšte" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Mrežni prolaz:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Udaljeni mrežni prolaz(i), sa izbornim priključnikom i protokolom (npr. „ovpn." +"corp.com:1234:tcp“). Možete da navedete više stavki zarad izobilja (koristite " +"zareze da razdvojite unose).\n" +"podešavanje: „remote“" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Potvrđivanje identiteta" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Korisničko ime:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Lozinka prosleđena OpenVPN-u kada je zatražena.\n" +"podešavanje: „auth-user-pass“" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Korisničko ime prosleđeno OpenVPN-u kada je zatraženo.\n" +"podešavanje: „auth-user-pass“" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Udaljena IP adresa:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Mesna IP adresa:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Usmerenje ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Statički ključ:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Pred-deljena datoteka za režim šifrovanja statičkog ključa (ne-TLS).\n" +"podešavanje: „static “" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adresa krajnje tačke udaljenog VPN-a.\n" +"podešavanje: „ifconfig “" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP adresa krajnje tačke mesnog VPN-a.\n" +"podešavanje: „ifconfig “" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Usmerenje za režim šifrovanja statičkog ključa (ne-TLS).\n" +"Ako koristite usmerenje ključa, mora biti suprotno od onog korišćenog na VPN " +"parnjaku. Na primer, ako parnjak koristi „1“, ova veza mora da koristi „0“. " +"Ako niste sigurni koju vrednost da koristite, posavejtujte se sa " +"administratorom sistema.\n" +"podešavanje: „static [usmerenje]“" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Vrsta:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Izaberite režim potvrđivanja identiteta." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "_Napredno…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Napredne opcije za OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Koristi proizvoljni _priključnik mrežnog prolaza:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Broj TCP/UDP priključnika za parnjaka. (Osnovna vrednost kada nema priključnika " +"za mrežni prolaz).\n" +"podešavanje: „port“" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Koristi proizvoljan period ponovnog _pregovaranja:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Ponovo pregovarajte ključ kanala podataka nakon navedenog broja sekundi.\n" +"podešavanje: „reneg-sec“" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Koristi _LZO sažimanje podataka" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Koristite brzo LZO sažimanje.\n" +"podešavanje: „comp-lzo“" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Izaberite LZO režim pakovanja podataka.\n" +"podešavanje: „comp-lzo“" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Koristi _TCP vezu" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Koristite TCP za komuniciranje sa udaljenim domaćinom.\n" +"(Ovo je osnovno podešavanje koje se koristi samo kada nije naveden protokol " +"za mrežni prolaz.)\n" +"podešavanje: „proto tcp-client | udp“" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Podesi vrstu virtuelnog _uređaja:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Izričito podesite vrstu virtuelnog uređaja i naziv (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Izričito podesite vrstu virtuelnog uređaja (TUN/TAP).\n" +"podešavanje: „dev-type tun | tap“" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " i _naziv:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Koristite proizvoljan naziv za TUN/TAP virtuelni uređaj (umesto osnovnog " +"„tun“ ili „tap“).\n" +"podešavanje: dev „“" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Koristi _jedinicu najvećeg prenosa (MTU) proizvoljnog kanala:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Postavite MTU TUN uređaja da bude navedena vrednost i izvedite MTU veze iz " +"nje.\n" +"podešavanje: „tun-mtu“" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Koristi veličinu _odlomka proizvoljnog UDP-a:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Uključite podeljenost unutrašnjeg datograma sa ovom najvećom veličinom.\n" +"podešavanje: „fragment“" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Ograniči najveću veličinu _odsečka TCP tunela (MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Ograničite TCP MSS tunela.\n" +"podešavanje: „mssfix“" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "_Izmešaj udaljene domaćine" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Izmešajte redosled spiska mrežnih prolaza (udaljeno) kao vrstu mere osnovnog " +"uravnoteženja otpremanja.\n" +"podešavanje: „remote-random“" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "Veza IPv6 tun-a" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Izgradi tun vezu koja može da prosledi IPv6 saobraćaj\n" +"podešavanje: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Navedi ping _izlaska ili ponovnog pokretanja:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Izlazi ili ponovo pokreće nakon n sekunde protekle bez prijema pinga ili " +"drugog paketa sa udaljenog.\n" +"podešavanje: „ping-exit | ping-restart “" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Navedi interval _pinga:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Pinguje udaljenog preko TCP/UDP kontrolnog kanala ako nijedan paket nije " +"poslat za najmanje n sekunde.\n" +"podešavanje: „ping “" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Prihvati proverene pakete sa bilo koje adrese (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Omogućava udaljenom parnjaku da promeni svoju IP adresu i/ili broj " +"priključnika, kao usled DHCP-a (ovo je osnovno ako se ne koristi „--remote“). " +"„--float“ kada je navedeno sa „--remote“ omogućava OpenVPN sesiji da se prvo " +"poveže sa parnjakom na poznatoj adresi, međutim ako paketi stižu sa nove " +"adrese i prođu sve testove potvrđivanja identiteta, nova adresa će preuzeti " +"kontrolu nad sesijom. Ovoje korisno kada se povezujete sa parnjakom koji drži " +"dinamičku adresu kao što je korisnik dvojne parice ili DHCP klijent.\n" +"\n" +"U osnovi, „--float“ govori OpenVPN-u da prihvati proverene pakete sa bilo " +"koje adrese, a ne samo sa adrese koja je navedena u opciji „--remote“.\n" +"\n" +"podešavanje: „float“" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Navedite najviše rute:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Navedite najveći broj ruta koje server može da navede.\n" +"podešavanje: max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Šifrujte pakete algoritmom šifrovanja. Osnovni je BF-CBC (Blaufiš u režimu " +"ulančavanja bloka šifre).\n" +"podešavanje: „cipher“" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Koristi proizvoljnu _veličinu ključa šifrovanja:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Podesite veličinu ključa šifrovanja na proizvoljnu vrednost. Ako nije navedeno, " +"podrazumeva posebnu veličinu šifrovanja.\n" +"podešavanja: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Potvrdite identitet paketa HMAC-om koristeći algoritam izvoda poruke. " +"Osnovni je SHA1.\n" +"podešavanje: „auth“" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "_Šifra:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_HMAC potvrđivanje identiteta:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Bezbednost" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "_Poklapanje naslova:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Subjekat ili opšti naziv za proveru podataka o uverenju servera.\n" +"\n" +"podešavanje: verify-x509-name subjekat-ili-naziv [režim]\n" +"podešavanje (stari režim): tls-remote subjekat-ili-naziv" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Provera _uverenja servera:" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +#| msgid "" +#| "Verify server certificate identification.\n" +#| "\n" +#| "When enabled, connection will only succeed if the server certificate " +#| "matches some expected properties.\n" +#| "Matching can either apply to the whole certificate subject (all the " +#| "fields),\n" +#| "or just the Common Name (CN field).\n" +#| "\n" +#| "config: verify-x509-name subject-or-name [mode]\n" +#| "config (legacy mode): tls-remote subject-or-name" +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Proverite prepoznavanje uverenja servera.\n" +"\n" +"Kada je uključeno, povezivanje će uspeti samo ako uverenje servera odgovara " +"nekim očekivanim svojstvima.\n" +"Upoređivanje se može primeniti na čitav subjekat uverenja (sva polja),\n" +"ili samo na opšti naziv (CN polje).\n" +"\n" +"Stara opcija „tls-remote“ je zastarela i uklonjena iz OpenVPN-a 2.4 i " +"novijeg. Ne koristite je više.\n" +"\n" +"podešavanje: verify-x509-name subjekat-ili-naziv [režim]\n" +"podešavanje (stari režim): tls-remote subjekat-ili-naziv" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Proveri potpis korišćenja uverenja parnjaka (servera)" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Zahtevajte da uverenje parnjaka bude potpisano korišćenjem izričitog ključa i " +"korišćenjem proširenog ključa zasnovanog na RFC3280 TLS pravilima." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "_Vrsta TLS uverenja udaljenog parnjaka:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Zahtevajte da uverenje parnjaka bude potpisano korišćenjem izričitog ključa i " +"korišćenjem proširenog ključa zasnovanog na RFC3280 TLS pravilima.\n" +"podešavanje: „remote-cert-tls client|server“" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Proveri oznaku nsCertType uverenja parnjaka (servera)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Zahtevaj da uverenje parnjaka bude potpisan sa izričitom nsCertType oznakom." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "Oznaka nsCert uve_renja udaljenog parnjaka:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Zahtevajte da uverenje parnjaka bude potpisano sa izričitom nsCertType " +"oznakom.\n" +"podešavanje: „ns-cert-type client|server“" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "_Usmerenje ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Dodajte dopunski sloj HMAC potvrde identiteta na vrh TLS upravljačkog kanala " +"da se zaštitite od DoS napada.\n" +"podešavanje: „tls-auth [usmerenje]“" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Parametri usmerenja za režim statičkog ključa.\n" +"Ako koristite usmerenje ključa, mora biti suprotno od onog korišćenog na VPN " +"parnjaku. Na primer, ako parnjak koristi „1“, ova veza mora da koristi „0“. " +"Ako niste sigurni koju vrednost da koristite, posavejtujte se sa " +"administratorom sistema.\n" +"podešavanje: „tls-auth [usmerenje]“" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "_Datoteka ključa:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Režim" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +#| msgid "Add an additional layer of HMAC authentication." +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "Dodajte dopunski sloj šifrovanja ili HMAC potvrde identiteta." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +#| msgid "Use additional _TLS authentication" +msgid "Additional TLS authentication or encryption" +msgstr "Dopunsko TLS potvrđivanje identiteta ili šifrovanje" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "TLS potvrđivanje identiteta" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Vrsta posrednika: HTTP ili Socks.\n" +"podešavanje: „http-proxy“ ili „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Vrsta _posrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Izaberite ovu opciju ako vaše udruženje zahteva upotrebu posredničkog " +"servera za pristupanje Internetu." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "_Adresa servera:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Povežite se na udaljenog domaćina putem posrednika sa ovom adresom.\n" +"podešavanje: „http-proxy“ ili „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "_Priključnik:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Povežite se na udaljenog domaćina putem posrednika sa ovim priključnikom.\n" +"podešavanje: „http-proxy“ ili „socks-proxy“" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "_Neprekidno pokušavaj kad dođe do grešaka" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Pokušavajte neprekidno pri greškama posrednika. Ovo simulira SIGUSR1 ponovno " +"postavljanje.\n" +"podešavanje: „http-proxy-retry“ ili „socks-proxy-retry“" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Korisničko _ime za posrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Lozinka _posrednika:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Korisničko ime HTTP/Socks posrednika prosleđeno OpenVPN-u kada je zatraženo." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "Lozinka HTTP/Socks posrednika prosleđena OpenVPN-u kada je zatraženo." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "_Prikaži lozinku" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Posrednici" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Otkrivanje mtu putanje" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Razno" + +#~ msgid "Choose your personal certificate…" +#~ msgstr "Izaberite lično uverenje…" + +#~ msgid "Choose your private key…" +#~ msgstr "Izaberite lični ključ…" + +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Izaberite uverenje izdavača ovlašćenja…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "PEM ili PKCS#12 uverenja (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "PEM uverenja (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Nedostaje zahtevana mesna IP adresa za režim statičkog ključa." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Nedostaje zahtevana udaljena IP adresa za režim statičkog ključa." + +#~ msgid "_Show passwords" +#~ msgstr "_Prikaži lozinke" + +#~ msgid "Password for private key" +#~ msgstr "Lozinka ličnog ključa" + +#~ msgid "Private Key Password:" +#~ msgstr "Lozinka privatnog ključa:" + +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Lični ključ mesnog parnjaka u „.pem“ obliku.\n" +#~ "podešavanje: „key“" + +#~ msgid "Private Key:" +#~ msgstr "Lični ključ:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Datoteka izdavača uverenja (CA) u „.pem“ obliku.\n" +#~ "podešavanje: „ca“" + +#~ msgid "CA Certificate:" +#~ msgstr "Uverenje izdavača uverenja:" + +#~ msgid "User Certificate:" +#~ msgstr "Korisničko uverenje:" + +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Potpisano uverenje mesnog parnjaka u „.pem“ obliku (koje potpisuje izdavač " +#~ "uverenja uverenja izdavača uverenja).\n" +#~ "podešavanje: „cert“" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "ne mogu da zapišem <%s> blob iz %ld. reda u datoteku „%s“" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "Ne mogu da obradim zahtev zbog neispravne vrste veze openvpn-a." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Opšte" + +#~ msgid "Authentication" +#~ msgstr "Potvrda identiteta" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Povežite se samo sa serverima čija uverenja odgovaraju datom naslovu.\n" +#~ "Primer: /CN=myvpn.company.com" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Prihvatite veze samo sa domaćina sa nazivom Iks509 ili sa opštim nazivom " +#~ "koji je isti sa onim navedenim.\n" +#~ "podešavanje: „tls-remote“" + +#~ msgid "could not open file for writing" +#~ msgstr "ne mogu da otvorim datoteku za pisanje" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "opcija „%s“ očekuje tačno %u argumenta" + +#~ msgid "empty %s service argument" +#~ msgstr "prazan argument „%s“ usluge" + +#~ msgid "missing certificate file name" +#~ msgstr "nedostaje naziv datoteke uverenja" + +#~ msgid "empty tls-remote argument" +#~ msgstr "prazan argument tls-udaljenog" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "Upravnik VPN veza (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Dodajte, uklanjajte i uređujte VPN veze" + +#~ msgid "Saved" +#~ msgstr "Sačuvano" + +#~ msgid "Always Ask" +#~ msgstr "Pitaj uvek" + +#~ msgid "Not Required" +#~ msgstr "Nije neophodno" + +#~ msgid "Use a TA_P device" +#~ msgstr "Koristi TA_P uređaj" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..fafe1a3 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,1440 @@ +# Swedish messages for NetworkManager openvpn. +# Copyright © 2004-2017 Free Software Foundation, Inc. +# Christian Rose , 2004, 2005, 2006. +# Daniel Nylander , 2006, 2007, 2008, 2009, 2010, 2011, 2012. +# Josef Andersson , 2014, 2016, 2017. +# +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2017-08-13 22:16+0000\n" +"PO-Revision-Date: 2017-08-25 23:04+0200\n" +"Last-Translator: Anders Jonsson \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:1 +msgid "OpenVPN client" +msgstr "OpenVPN-klient" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:2 +msgid "Client for OpenVPN virtual private networks" +msgstr "Klient för OpenVPN virtuella privata nätverk" + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:3 +msgid "Support for configuring OpenVPN virtual private network connections." +msgstr "" +"Stöd för att konfigurera OpenVPN virtuella privata nätverksanslutningar." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:4 +msgid "OpenVPN is a popular and flexible free-software VPN solution." +msgstr "OpenVPN är en populär och flexibel VPN-lösning som är fri programvara." + +#: ../appdata/network-manager-openvpn.metainfo.xml.in.h:5 +msgid "The NetworkManager Developers" +msgstr "Utvecklarna av Nätverkshanteraren" + +#: ../auth-dialog/main.c:175 +#, c-format +msgid "Authenticate VPN %s" +msgstr "Autentisera VPN %s" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:11 +msgid "Password:" +msgstr "Lösenord:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Certifikatlösenord:" + +#: ../auth-dialog/main.c:196 +msgid "HTTP proxy password:" +msgstr "Lösenord för HTTP-proxy:" + +#: ../auth-dialog/main.c:234 +msgid "Authenticate VPN" +msgstr "Autentisera VPN" + +#: ../auth-dialog/main.c:243 +msgid "Certificate pass_word:" +msgstr "Certifikatlöse_nord:" + +#: ../auth-dialog/main.c:249 +msgid "_HTTP proxy password:" +msgstr "Lösenord för _HTTP-proxy:" + +#: ../auth-dialog/main.c:513 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network “%s”." +msgstr "" +"Du måste autentisera dig för att komma åt det virtuella privata nätverket " +"”%s”." + +#: ../properties/auth-helpers.c:281 +msgid "Choose an OpenVPN static key…" +msgstr "Välj en statisk OpenVPN-nyckel…" + +#: ../properties/auth-helpers.c:305 ../properties/auth-helpers.c:968 +#: ../properties/auth-helpers.c:1731 ../properties/nm-openvpn-dialog.ui.h:1 +msgid "None" +msgstr "Ingen" + +#: ../properties/auth-helpers.c:719 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Statiska OpenVPN-nycklar (*.key)" + +#: ../properties/auth-helpers.c:866 ../properties/auth-helpers.c:960 +msgid "Default" +msgstr "Standard" + +#: ../properties/auth-helpers.c:970 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:972 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:974 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:976 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:978 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:980 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:982 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:984 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1027 +msgid "Don’t verify certificate identification" +msgstr "Verifiera inte certifikatsidentifiering" + +#: ../properties/auth-helpers.c:1033 +msgid "Verify whole subject exactly" +msgstr "Verifiera hela ämnet exakt" + +#: ../properties/auth-helpers.c:1039 +msgid "Verify name exactly" +msgstr "Verifiera namnet exakt" + +#: ../properties/auth-helpers.c:1045 +msgid "Verify name by prefix" +msgstr "Verifiera namnet efter prefix" + +#: ../properties/auth-helpers.c:1051 +msgid "Verify subject partially (legacy mode, strongly discouraged)" +msgstr "Verifiera ämnet delvis (föråldrat läge, avrådes starkt)" + +#: ../properties/auth-helpers.c:1165 ../properties/auth-helpers.c:1236 +msgid "Server" +msgstr "Server" + +#: ../properties/auth-helpers.c:1170 ../properties/auth-helpers.c:1241 +msgid "Client" +msgstr "Klient" + +#: ../properties/auth-helpers.c:1532 ../properties/nm-openvpn-dialog.ui.h:33 +msgid "Not required" +msgstr "Krävs inte" + +#: ../properties/auth-helpers.c:1534 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1536 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1658 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1660 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1667 +msgid "(automatic)" +msgstr "(automatisk)" + +#: ../properties/auth-helpers.c:1791 +msgid "ping-exit" +msgstr "ping-exit" + +#: ../properties/auth-helpers.c:1793 +msgid "ping-restart" +msgstr "ping-restart" + +#: ../properties/import-export.c:186 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "flaggan %s förväntar sig mellan %u och %u argument" +msgstr[1] "flaggan %s förväntar sig mellan %u och %u argument" + +#: ../properties/import-export.c:191 +#, c-format +msgid "option %s expects no arguments" +msgstr "flaggan %s förväntar sig inga argument" + +#: ../properties/import-export.c:193 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "flaggan %s förväntar sig precis ett argument" +msgstr[1] "flaggan %s förväntar sig precis %u argument" + +#: ../properties/import-export.c:222 +#, c-format +msgid "argument %s of “%s” can not be empty" +msgstr "argumentet %s för ”%s” kan inte vara tomt" + +#: ../properties/import-export.c:224 +#, c-format +msgid "argument of “%s” can not be empty" +msgstr "argumentet för ”%s” kan inte vara tomt" + +#: ../properties/import-export.c:240 +#, c-format +msgid "argument %s of “%s” must be UTF-8 encoded" +msgstr "argumentet %s för ”%s” måste vara UTF-8-kodat" + +#: ../properties/import-export.c:242 +#, c-format +msgid "argument of “%s” must be UTF-8 encoded" +msgstr "argumentet för ”%s” måste vara UTF-8-kodat" + +# TODO: ev felrapport. Vad om u motsvarar ett tal som slutar på 1 eller 2? +#: ../properties/import-export.c:266 +#, c-format +msgid "invalid %uth argument to “%s” where number expected" +msgstr "ogiltigt %u:e argument till ”%s” där tal förväntas" + +#. we don't support these special destinations, as they currently cannot be expressed +#. * in a connection. +#: ../properties/import-export.c:307 +#, c-format +msgid "unsupported %uth argument %s to “%s”" +msgstr "ogiltigt %u:e argument %s till ”%s”" + +#. we also don't support specifing a FQDN. +#: ../properties/import-export.c:325 +#, c-format +msgid "" +"unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 " +"address supported" +msgstr "" +"%u:e argument till ”%s” som ej stöds vilket ser ut som en FQDN men endast " +"IPv4-adresser stöds" + +#: ../properties/import-export.c:332 +#, c-format +msgid "invalid %uth argument to “%s” where IPv4 address expected" +msgstr "ogiltigt %u:e argument till ”%s” där IPv4-adress förväntas" + +#: ../properties/import-export.c:357 +#, c-format +msgid "invalid %uth key-direction argument to “%s”" +msgstr "ogiltigt %u:e key-direction-argument till ”%s”" + +#: ../properties/import-export.c:371 +#, c-format +msgid "invalid %uth argument to “%s”" +msgstr "ogiltigt %u:e argument till ”%s”" + +#: ../properties/import-export.c:486 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "ej avslutat %s vid position %lld" + +#: ../properties/import-export.c:487 +msgid "double quote" +msgstr "dubbelt citattecken" + +#: ../properties/import-export.c:487 +msgid "single quote" +msgstr "enkelt citattecken" + +#: ../properties/import-export.c:503 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "eftersläpande bakstreck vid positionen %lld" + +#: ../properties/import-export.c:633 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "kunde inte läsa HTTP-proxy auth-fil" + +#: ../properties/import-export.c:651 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "kan inte läsa användare/lösenord från HTTP-proxy auth-fil" + +#: ../properties/import-export.c:659 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "användarnamn/lösenord från HTTP-proxy auth-fil måste vara UTF-8-kodat" + +#: ../properties/import-export.c:721 +#, c-format +msgid "“%s” is not a directory" +msgstr "”%s” är inte en katalog" + +#: ../properties/import-export.c:729 +#, c-format +msgid "cannot create “%s” directory" +msgstr "kan inte skapa katalogen ”%s”" + +#: ../properties/import-export.c:749 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "kan inte skriva <%s>-blob från raden %ld till filen (%s)" + +#: ../properties/import-export.c:766 +#, c-format +msgid "cannot write <%s> blob from line %ld to file “%s”" +msgstr "kan inte skriva <%s>-blob från raden %ld till filen ”%s”" + +#: ../properties/import-export.c:935 +#, c-format +msgid "unsupported mtu-disc argument" +msgstr "argument till mtu-disc som ej stöds" + +#: ../properties/import-export.c:946 ../properties/import-export.c:1306 +#, c-format +msgid "invalid option" +msgstr "ogiltig flagga" + +#: ../properties/import-export.c:985 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "argument till comp-lzo som ej stöds" + +#: ../properties/import-export.c:1081 +#, c-format +msgid "remote cannot contain space" +msgstr "fjärr kan inte innehålla blanksteg" + +#: ../properties/import-export.c:1085 +#, c-format +msgid "remote cannot contain comma" +msgstr "fjärr kan inte innehålla komma" + +#: ../properties/import-export.c:1096 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "fjärr förväntar sig ett protokoll, antingen udp eller remote" + +#: ../properties/import-export.c:1290 +#, c-format +msgid "invalid verify-x509-name type" +msgstr "ogiltig verify-x509-name-typ" + +#: ../properties/import-export.c:1432 +#, c-format +msgid "unsupported blob/xml element" +msgstr "blob/xml-element stöds ej" + +#: ../properties/import-export.c:1461 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "oavslutat blob-element <%s>" + +#: ../properties/import-export.c:1517 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "konfigurationsfel: %s (rad %ld)" + +#: ../properties/import-export.c:1518 +msgid "unknown or unsupported option" +msgstr "flaggan stöds ej eller är okänd" + +#: ../properties/import-export.c:1533 +msgid "The file to import wasn’t a valid OpenVPN client configuration" +msgstr "Importfilen var inte en giltig OpenVPN-klientkonfiguration" + +#: ../properties/import-export.c:1541 +msgid "The file to import wasn’t a valid OpenVPN configure (no remote)" +msgstr "Importfilen var inte en giltig OpenVPN-konfiguration (ingen fjärr)" + +#: ../properties/import-export.c:1773 +msgid "missing path argument" +msgstr "sökvägsargument saknas" + +#: ../properties/import-export.c:1783 +msgid "connection is not a valid OpenVPN connection" +msgstr "anslutningen är inte en giltig OpenVPN-anslutning" + +#: ../properties/import-export.c:1792 +msgid "connection was incomplete (missing gateway)" +msgstr "anslutningen var ofullständig (saknar gateway)" + +#: ../properties/import-export.c:2131 +#, c-format +msgid "failed to write file: %s" +msgstr "misslyckades med att skriva fil: %s" + +#: ../properties/nm-openvpn-editor-plugin.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn-editor-plugin.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "Kompatibel med OpenVPN-servern." + +#: ../properties/nm-openvpn-editor-plugin.c:81 +msgid "unknown OpenVPN file extension" +msgstr "okänd filändelse för OpenVPN" + +#: ../properties/nm-openvpn-editor.c:298 +msgid "Certificates (TLS)" +msgstr "Certifikat (TLS)" + +#: ../properties/nm-openvpn-editor.c:309 +msgid "Password" +msgstr "Lösenord" + +#: ../properties/nm-openvpn-editor.c:322 +msgid "Password with Certificates (TLS)" +msgstr "Lösenord med certifikat (TLS)" + +#: ../properties/nm-openvpn-editor.c:334 +msgid "Static Key" +msgstr "Statisk nyckel" + +#: ../properties/nm-openvpn-editor.c:488 +msgid "could not create openvpn object" +msgstr "kunde inte skapa openvpn-objekt" + +#: ../properties/nm-openvpn-editor.c:505 +msgid "could not load UI widget" +msgstr "kunde inte läsa in UI-komponent" + +#: ../shared/nm-utils/nm-shared-utils.c:345 +#, c-format +msgid "object class '%s' has no property named '%s'" +msgstr "objektklassen ”%s” har ingen egenskap med namnet ”%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:352 +#, c-format +msgid "property '%s' of object class '%s' is not writable" +msgstr "egenskapen ”%s” för objektklassen ”%s” är inte skrivbar" + +#: ../shared/nm-utils/nm-shared-utils.c:359 +#, c-format +msgid "" +"construct property \"%s\" for object '%s' can't be set after construction" +msgstr "" +"konstruktionsegenskap ”%s” för objektet ”%s” kan inte ställas in efter att " +"det skapats" + +#: ../shared/nm-utils/nm-shared-utils.c:367 +#, c-format +msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype" +msgstr "" +"”%s::%s” är inte ett giltigt egenskapsnamn; ”%s” är inte en undertyp till " +"GObject" + +#: ../shared/nm-utils/nm-shared-utils.c:376 +#, c-format +msgid "unable to set property '%s' of type '%s' from value of type '%s'" +msgstr "kan inte sätta egenskapen ”%s” av typen ”%s” från värdet av typen ”%s”" + +#: ../shared/nm-utils/nm-shared-utils.c:387 +#, c-format +msgid "" +"value \"%s\" of type '%s' is invalid or out of range for property '%s' of " +"type '%s'" +msgstr "" +"värdet ”%s” av typ ”%s” är ogiltigt eller utanför intervallet för egenskapen " +"”%s” av typ ”%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:80 +#, c-format +msgid "missing plugin file \"%s\"" +msgstr "saknar insticksmodulfilen ”%s”" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:86 +#, c-format +msgid "cannot load editor plugin: %s" +msgstr "kan inte öppna redigerarinsticket: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:95 +#, c-format +msgid "cannot load factory %s from plugin: %s" +msgstr "kan inte öppna fabriken %s från insticksmodulen: %s" + +#: ../shared/nm-utils/nm-vpn-plugin-utils.c:121 +msgid "unknown error creating editor instance" +msgstr "okänt fel vid skapande av redigeringsinstans" + +#: ../src/nm-openvpn-service.c:477 +#, c-format +msgid "invalid address “%s”" +msgstr "ogiltig adress ”%s”" + +#: ../src/nm-openvpn-service.c:489 +#, c-format +msgid "invalid integer property “%s” or out of range [%d -> %d]" +msgstr "ogiltig heltalsegenskap ”%s” eller utanför intervallet [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:500 +#, c-format +msgid "invalid boolean property “%s” (not yes or no)" +msgstr "ogiltig boolesk egenskap ”%s” (inte yes eller no)" + +#: ../src/nm-openvpn-service.c:507 +#, c-format +msgid "unhandled property “%s” type %s" +msgstr "ej hanterad egenskap ”%s” typ %s" + +#: ../src/nm-openvpn-service.c:518 +#, c-format +msgid "property “%s” invalid or not supported" +msgstr "egenskapen ”%s” är ogiltig eller stöds inte" + +#: ../src/nm-openvpn-service.c:534 +msgid "No VPN configuration options." +msgstr "Inga VPN-konfigurationsalternativ." + +#: ../src/nm-openvpn-service.c:739 +msgid "A username is required." +msgstr "Ett användarnamn krävs." + +#: ../src/nm-openvpn-service.c:743 +msgid "A password is required." +msgstr "Ett lösenord krävs." + +#: ../src/nm-openvpn-service.c:746 +msgid "A username and password are required." +msgstr "Användarnamn och lösenord krävs." + +#: ../src/nm-openvpn-service.c:768 +msgid "A private key password is required." +msgstr "Ett lösenord för privat nyckel krävs." + +#: ../src/nm-openvpn-service.c:781 +msgid "An HTTP Proxy username is required." +msgstr "Användarnamn för HTTP-proxy krävs." + +#: ../src/nm-openvpn-service.c:785 +msgid "An HTTP Proxy password is required." +msgstr "Lösenord för HTTP-proxy krävs." + +#: ../src/nm-openvpn-service.c:788 +msgid "An HTTP Proxy username and password are required." +msgstr "Användarnamn och lösenord för HTTP-proxy krävs." + +#: ../src/nm-openvpn-service.c:1275 ../src/nm-openvpn-service.c:2058 +#: ../src/nm-openvpn-service.c:2092 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" +"Kunde inte behandla begäran eftersom inställningar i VPN-konfigurationen var " +"ogiltiga." + +#: ../src/nm-openvpn-service.c:1284 ../src/nm-openvpn-service.c:2067 +msgid "Invalid connection type." +msgstr "Ogiltig anslutningstyp." + +#: ../src/nm-openvpn-service.c:1302 +msgid "Could not find the openvpn binary." +msgstr "Kunde inte hitta binärfilen openvpn." + +#: ../src/nm-openvpn-service.c:1312 +msgid "Invalid HMAC auth." +msgstr "Ogiltig HMAC-autentisering." + +#: ../src/nm-openvpn-service.c:1354 ../src/nm-openvpn-service.c:1362 +#, c-format +msgid "Invalid port number “%s”." +msgstr "Ogiltigt portnummer ”%s”." + +#: ../src/nm-openvpn-service.c:1378 +#, c-format +msgid "Invalid proto “%s”." +msgstr "Ogiltigt proto ”%s”." + +#: ../src/nm-openvpn-service.c:1420 +#, c-format +msgid "Invalid proxy type “%s”." +msgstr "Ogiltig proxytyp ”%s”." + +#: ../src/nm-openvpn-service.c:1468 +#, c-format +msgid "Invalid ping duration “%s”." +msgstr "Ogiltig ping-längd ”%s”." + +#: ../src/nm-openvpn-service.c:1481 +#, c-format +msgid "Invalid ping-exit duration “%s”." +msgstr "Ogiltig ping-exit-längd ”%s”." + +#: ../src/nm-openvpn-service.c:1494 +#, c-format +msgid "Invalid ping-restart duration “%s”." +msgstr "Ogiltig ping-restart-längd ”%s”." + +#: ../src/nm-openvpn-service.c:1513 +#, c-format +msgid "Invalid max-routes argument “%s”." +msgstr "Ogiltigt max-routes-argument ”%s”" + +#: ../src/nm-openvpn-service.c:1568 +#, c-format +msgid "Invalid keysize “%s”." +msgstr "Ogiltig nyckelstorlek ”%s”." + +#: ../src/nm-openvpn-service.c:1625 +#, c-format +msgid "Invalid configuration with tls-remote and verify-x509-name." +msgstr "Ogiltig konfiguration med tls-remote och verify-x509-name." + +#: ../src/nm-openvpn-service.c:1639 +#, c-format +msgid "Invalid verify-x509-name." +msgstr "Ogiltigt verify-x509-name." + +#: ../src/nm-openvpn-service.c:1673 +#, c-format +msgid "Invalid reneg seconds “%s”." +msgstr "Ogiltigt antal sekunder för omförhandling ”%s”." + +#: ../src/nm-openvpn-service.c:1705 +#, c-format +msgid "Invalid TUN MTU size “%s”." +msgstr "Ogiltig TUN MTU-storlek ”%s”." + +#: ../src/nm-openvpn-service.c:1719 +#, c-format +msgid "Invalid fragment size “%s”." +msgstr "Ogiltig fragmenteringsstorlek ”%s”." + +#: ../src/nm-openvpn-service.c:1831 +#, c-format +msgid "Unknown connection type “%s”." +msgstr "Okänd anslutningstyp ”%s”." + +#: ../src/nm-openvpn-service.c:1850 +#, c-format +msgid "User “%s” not found, check NM_OPENVPN_USER." +msgstr "Användaren ”%s” inte funnen, kontrollera NM_OPENVPN_USER." + +#: ../src/nm-openvpn-service.c:1863 +#, c-format +msgid "Group “%s” not found, check NM_OPENVPN_GROUP." +msgstr "Gruppen ”%s” inte funnen, kontrollera NM_OPENVPN_GROUP." + +#: ../src/nm-openvpn-service.c:2105 +msgid "Unhandled pending authentication." +msgstr "Ej hanterad väntande autentisering." + +#: ../src/nm-openvpn-service.c:2224 +msgid "Don’t quit when VPN connection terminates" +msgstr "Avsluta inte när VPN-anslutningen avslutas" + +#: ../src/nm-openvpn-service.c:2225 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "Aktivera informativ felsökningsloggning (kan exponera lösenord)" + +#: ../src/nm-openvpn-service.c:2226 +msgid "D-Bus name to use for this instance" +msgstr "D-Bus-namn att använda för denna instans" + +#: ../src/nm-openvpn-service.c:2252 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" +"nm-openvpn-service tillhandahåller integrerade OpenVPN-förmågor till " +"Nätverkshanterare." + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "TLS-Auth" +msgstr "TLS-Auth" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "TLS-Crypt" +msgstr "TLS-Crypt" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "Maybe" +msgstr "Kanske" + +#: ../properties/nm-openvpn-dialog.ui.h:5 +msgid "Yes" +msgstr "Ja" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "General" +msgstr "Allmänt" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Gateway:" +msgstr "_Gateway:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"Fjärrgateway med valfri port och protokoll (till exempel ovpn.corp.com:1234:" +"tcp). Du kan ange flera värdar för redundans (använd komma eller blanksteg " +"som avgränsare).\n" +"config: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "Authentication" +msgstr "Autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "User name:" +msgstr "Användarnamn:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Lösenord skickas till OpenVPN när det efterfrågas.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Användarnamn skickas till OpenVPN när det efterfrågas.\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "Remote IP Address:" +msgstr "Fjärr-IP-adress:" + +#: ../properties/nm-openvpn-dialog.ui.h:18 +msgid "Local IP Address:" +msgstr "Lokal IP-adress:" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "Key Direction:" +msgstr "Nyckelriktning:" + +#: ../properties/nm-openvpn-dialog.ui.h:20 +msgid "Static Key:" +msgstr "Statisk nyckel:" + +#: ../properties/nm-openvpn-dialog.ui.h:21 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Förutdelad fil för krypteringsläge med statisk nyckel (icke-TLS).\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP-adress för fjärr-VPN-ändpunkten.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"IP-adress för den lokala VPN-ändpunkten.\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Riktning för krypteringsläge med statisk nyckel (icke-TLS).\n" +"Om nyckelriktning används så måste den vara motsatsen till den som används " +"på VPN-motparten. Till exempel om motparten använder ”1” måste denna " +"anslutning vara ”0”. Om du är osäker vilket värde du ska använda kan du " +"kontakta din systemadministratör.\n" +"config: static [riktning]" + +#: ../properties/nm-openvpn-dialog.ui.h:30 +msgid "Type:" +msgstr "Typ:" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Select an authentication mode." +msgstr "Välj ett autentiseringsläge." + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Ad_vanced…" +msgstr "A_vancerat…" + +#: ../properties/nm-openvpn-dialog.ui.h:34 +msgid "OpenVPN Advanced Options" +msgstr "Avancerade alternativ för OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "Use custom gateway p_ort:" +msgstr "Använd anpassad gatewayp_ort:" + +#: ../properties/nm-openvpn-dialog.ui.h:36 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"TCP/UDP-portnummer för motpart. (Standardvärde för när det inte finns en " +"port för gateway).\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Use custom _renegotiation interval:" +msgstr "Använd anpassat intervall för _omförhandling:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Omförhandla nyckel för datakanal efter angivet antal sekunder.\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Use L_ZO data compression" +msgstr "Använd L_ZO-datakomprimering" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Använd snabb LZO-komprimering.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"Select the LZO data compression mode.\n" +"config: comp-lzo" +msgstr "" +"Välj LZO-datakomprimeringsläge.\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use a _TCP connection" +msgstr "Använd en _TCP-anslutning" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Använd TCP för kommunikation med fjärrvärd.\n" +"(Standardinställning som endast används när inget protokoll är angivet för " +"gateway.)\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "Set virtual _device type:" +msgstr "Sätt virtuell _enhetstyp:" + +#: ../properties/nm-openvpn-dialog.ui.h:51 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Sätt explicit virtuell enhetstyp och namn (TUN/TAP)." + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Sätt explicit virtuell enhetstyp (TUN/TAP).\n" +"config: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:54 +msgid " and _name:" +msgstr " och _namn:" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default “tun” or " +"“tap”).\n" +"config: dev " +msgstr "" +"Använd anpassat namn för virtuell TUN/TAP-enhet (istället för standard ”tun” " +"eller ”tap”).\n" +"config: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Använd anpassad Maximum Transmission Unit (MTU) för _tunneln:" + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"Sätt TUN-enhetens MTU till det specificerade värdet och härled länk-MTU från " +"det.\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "Use custom UDP _fragment size:" +msgstr "Använd anpassad storlek på UDP-_fragment:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Aktivera intern datagramfragmentering med denna maximala storlek.\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Begränsa TCP Maximum _Segment Size (MSS) för tunneln" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Begränsa tunnel TCP MSS.\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Rando_mize remote hosts" +msgstr "Slump_a fjärrvärdar" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Gör sorteringen för listan över (fjärr)gateways slumpmässiga som en typ av " +"grundläggande lastbalanseringsåtgärd.\n" +"config: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "IPv6 tun link" +msgstr "IPv6-tun-länk" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" +"Bygg en tun-länk kapabel att vidarebefordra IPv6-trafik\n" +"config: tun-ipv6" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Specify _exit or restart ping:" +msgstr "Ange _exit eller starta om ping:" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" +"Avsluta eller starta om efter att n sekunder passerat utan att ha tagit emot " +"en ping eller ett annat paket från fjärr.\n" +"config: ping-exit | ping-restart " + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "Specify pin_g interval:" +msgstr "Ange pin_g-intervall:" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" +"Skicka ping till mottagaren över TCP/UDP-kontrollkanalen om inga paket har " +"skickats under minst de senaste n sekunderna.\n" +"config: ping " + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Acceptera autentiserade paket från alla adresser (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address and " +"pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Tillåt fjärrmotpart att ändra dess IP-adress och/eller portnummer, som till " +"exempel beroende på DHCP (standard om inte --remote används). Då --float " +"anges med --remote möjliggörs för en OpenVPN-session att initialt ansluta " +"till en motpart på en känd adress, men om paket inkommer från en ny adress " +"och klarar alla autentiseringstester kommer den nya adressen att ta kontroll " +"över sessionen. Detta är användbart när du ansluter till en motpart som " +"håller en dynamisk adress så som en uppringd klient eller DHCP-klient.\n" +"\n" +"I princip gör --float att OpenVPN accepterar autentiserade paket från alla " +"adresser, inte bara den adress som angavs i flaggan --remote.\n" +"\n" +"config: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify max routes:" +msgstr "Ange högsta antal rutter:" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Specify the maximum number of routes the server is allowed to specify.\n" +"config: max-routes " +msgstr "" +"Ange högsta antal rutter servern får specificera.\n" +"config:max-routes " + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Kryptera paket med chifferalgoritm. Standard är BF-CBC (Blowfish i Cipher " +"Block Chaining-läge).\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:89 +msgid "Use custom _size of cipher key:" +msgstr "Använd anpassad _storlek på chiffernyckel:" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Sätt chiffernyckel till ett anpassat värde. Om ospecificerat, är standard " +"chifferspecifik storlek\n" +"config: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"Autentisera paket med HMAC tillsammans med message digest-algoritm. Standard " +"är SHA1.\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "Ci_pher:" +msgstr "Ski_ffer:" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "_HMAC Authentication:" +msgstr "_HMAC-autentisering:" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Security" +msgstr "Säkerhet" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "_Subject Match:" +msgstr "Matc_ha följande:" + +# TODO: ev. <> kring ämne-eller-namn +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Subject or Common Name to verify server certificate information against.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Ämne eller vanligt namn att verifiera servercertifikatsinformationen mot.\n" +"\n" +"config: verify-x509-name ämne-eller-namn [läge]\n" +"config (föråldrat läge): tls-remote ämne-eller-namn" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "Server _Certificate Check:" +msgstr "Server_certifikatkontroll:" + +# TODO: ev. <> kring ämne-eller-namn +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "" +"Verify server certificate identification.\n" +"\n" +"When enabled, connection will only succeed if the server certificate matches " +"some expected properties.\n" +"Matching can either apply to the whole certificate subject (all the " +"fields),\n" +"or just the Common Name (CN field).\n" +"\n" +"The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and " +"newer. Do not use it anymore.\n" +"\n" +"config: verify-x509-name subject-or-name [mode]\n" +"config (legacy mode): tls-remote subject-or-name" +msgstr "" +"Verifiera servercertifikatsinformation.\n" +"\n" +"När aktiverad kommer anslutningen endast att lyckas om servercertifikatet " +"matchar några förväntade egenskaper.\n" +"Matchning kan antingen tillämpas på hela certifikatet (alla fält),\n" +"eller bara vanligt namn (CN-fältet).\n" +"\n" +"Flaggan tls-remote är föråldrat och borttagen från OpenVPN 2.4 och nyare. " +"Använd den inte.\n" +"\n" +"config: verify-x509-name ämne-eller-namn [läge]\n" +"config (föråldrat läge): tls-remote ämne-eller-namn" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Verifiera certifikatanvändningssignatur för peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Begär att peercertifikatet var signerat med en explicit nyckelanvändning och " +"en utökad nyckelanvändning baserad på regler för RFC3280 TLS." + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Remote peer certificate TLS type:" +msgstr "_Avlägsen TLS-typ för peercertifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Begär att peercertifikatet var signerat med en explicit nyckelanvändning och " +"en utökad nyckel baserade på RFC3280 TLS-regler.\n" +"config: remote-cert-tls client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "_Verify peer (server) certificate nsCertType designation" +msgstr "_Verifiera nsCertType-angivning för certifikat för peer (server)" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation." +msgstr "" +"Begär att peercertifikatet var signerat med en explicit nsCertType-angivning." + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "_Remote peer certificate nsCert designation:" +msgstr "nsCert-angivning fö_r avlägset peercertifikat:" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Require that peer certificate was signed with an explicit nsCertType " +"designation.\n" +"config: ns-cert-type client|server" +msgstr "" +"Begär att peercertifikatet var signerat med en explicit nsCertType-" +"angivning.\n" +"config: ns-cert-type client|server" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Key _Direction:" +msgstr "Nyckel_riktning:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"Lägg till ett ytterligare lager med HMAC-autentisering ovanpå TLS-" +"kontrollkanalen som skydd mot DoS-attacker.\n" +"config: tls-auth [riktning]" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses “1”, this connection must use “0”. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Riktningsparameter för statiskt nyckelläge.\n" +"Om nyckelriktning används så måste den vara motsatsen till den som används " +"på VPN-motparten. Till exempel om parten använder ”1” måste denna " +"anslutning vara ”0”. Om du är osäker vilket värde du ska använda kan du " +"kontakta din systemadministratör.\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "Key _File:" +msgstr "Nyckel_fil:" + +#: ../properties/nm-openvpn-dialog.ui.h:130 +msgid "Mode" +msgstr "Läge" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "Add an additional layer of encryption or HMAC authentication." +msgstr "" +"Lägg till ett ytterligare lager av kryptering eller HMAC-autentisering." + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "Additional TLS authentication or encryption" +msgstr "Använd ytterligare TLS-autentisering eller kryptering" + +#: ../properties/nm-openvpn-dialog.ui.h:133 +msgid "TLS Authentication" +msgstr "TLS-autentisering" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Proxytyp: HTTP eller Socks.\n" +"config: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "Proxy _Type:" +msgstr "Proxy_typ:" + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Välj detta alternativ om din organisation kräver att en proxyserver " +"används för att komma åt internet." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "Server _Address:" +msgstr "Server_adress:" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Anslut till fjärrvärd genom en proxy med denna adress.\n" +"config: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:141 +msgid "_Port:" +msgstr "_Port:" + +#: ../properties/nm-openvpn-dialog.ui.h:142 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Anslut till fjärrvärd genom en proxy med denna port.\n" +"config: http-proxy eller socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:144 +msgid "_Retry indefinitely when errors occur" +msgstr "_Försök oändligt antal gånger när fel uppstår" + +#: ../properties/nm-openvpn-dialog.ui.h:145 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Prova igen oändligt antal gånger vid proxyfel. Det simulerar en SIGUSR1-" +"återställning.\n" +"config: http-proxy-retry eller socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:147 +msgid "Proxy _Username:" +msgstr "Använda_rnamn för proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:148 +msgid "Proxy Passwor_d:" +msgstr "Lösenor_d för proxy:" + +#: ../properties/nm-openvpn-dialog.ui.h:149 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" +"Användarnamn för HTTP/Socks-proxy skickas till OpenVPN när det efterfrågas." + +#: ../properties/nm-openvpn-dialog.ui.h:150 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" +"Lösenord för HTTP/Socks-proxy skickas till OpenVPN när det efterfrågas." + +#: ../properties/nm-openvpn-dialog.ui.h:151 +msgid "_Show password" +msgstr "Vi_sa lösenord" + +#: ../properties/nm-openvpn-dialog.ui.h:152 +msgid "Proxies" +msgstr "Proxyservrar" + +#: ../properties/nm-openvpn-dialog.ui.h:153 +msgid "Path mtu discovery" +msgstr "Path mtu discovery" + +#: ../properties/nm-openvpn-dialog.ui.h:154 +msgid "Misc" +msgstr "Övrigt" + +#~ msgid "Choose your personal certificate…" +#~ msgstr "Välj ditt personliga certifikat…" + +#~ msgid "Choose your private key…" +#~ msgstr "Välj din privata nyckel…" + +#~ msgid "Choose a Certificate Authority certificate…" +#~ msgstr "Välj ett CA-certifikat (Certifikatutfärdare)…" + +#~ msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +#~ msgstr "PEM eller PKCS#12-certifikat (*.pem, *.crt, *.key, *.cer, *.p12)" + +#~ msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +#~ msgstr "PEM-certifikat (*.pem, *.crt, *.key, *.cer)" + +#~ msgid "Missing required local IP address for static key mode." +#~ msgstr "Saknar nödvändig lokal IP-adress för statisk nyckelläge." + +#~ msgid "Missing required remote IP address for static key mode." +#~ msgstr "Saknar nödvändig fjärr-IP-adress för statisk nyckelläge." + +#~ msgid "_Show passwords" +#~ msgstr "Vi_sa lösenord" + +#~ msgid "Password for private key" +#~ msgstr "Lösenord för privat nyckel" + +#~ msgid "Private Key Password:" +#~ msgstr "Lösenord för privat nyckel:" + +#~ msgid "" +#~ "Local peer’s private key in .pem format.\n" +#~ "config: key" +#~ msgstr "" +#~ "Lokala peers privata nycklar i .pem-format.\n" +#~ "config: key" + +#~ msgid "Private Key:" +#~ msgstr "Privat nyckel:" + +#~ msgid "" +#~ "Certificate authority (CA) file in .pem format.\n" +#~ "config: ca" +#~ msgstr "" +#~ "Certifikatutfärdarfil (CA) i .pem-format.\n" +#~ "config: ca" + +#~ msgid "CA Certificate:" +#~ msgstr "CA-certifikat:" + +#~ msgid "User Certificate:" +#~ msgstr "Användarcertifikat:" + +#~ msgid "" +#~ "Local peer’s signed certificate in .pem format (signed by CA of CA " +#~ "Certificate).\n" +#~ "config: cert" +#~ msgstr "" +#~ "Lokal peers signerade certifikat i .pem-format (signerat av CA från CA-" +#~ "certifikat).\n" +#~ "config: cert" + +#~ msgid "cannot write <%s> blob from line %ld to file '%s'" +#~ msgstr "kan inte skriva <%s>-blob från raden %ld till filen ”%s”" + +#~ msgid "" +#~ "Could not process the request because the openvpn connection type was " +#~ "invalid." +#~ msgstr "" +#~ "Kunde inte behandla begäran eftersom openvpn-anslutningstypen var ogiltig." + +#~ msgid " " +#~ msgstr " " + +#~ msgid "General" +#~ msgstr "Allmänt" + +#~ msgid "Authentication" +#~ msgstr "Autentisering" + +#~ msgid "" +#~ "Connect only to servers whose certificate matches the given subject.\n" +#~ "Example: /CN=myvpn.company.com" +#~ msgstr "" +#~ "Anslut endast till servrar vars certifikat matchar angiven " +#~ "information.\n" +#~ "Exempel: /CN=mittvpn.företag.se" + +#~ msgid "" +#~ "Accept connections only from a host with X509 name or common name equal " +#~ "to the specified one.\n" +#~ "config: tls-remote" +#~ msgstr "" +#~ "Acceptera endast anslutningar från en värd med X509-namn eller vanligt " +#~ "namn som är lika med det angivna.\n" +#~ "config: tls-remote" + +#~ msgid "option %s expects exactly %u arguments" +#~ msgstr "flaggan %s förväntar sig precis %u argument" + +#~ msgid "could not open file for writing" +#~ msgstr "kan inte öppna fil för skrivning" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "VPN-anslutningshanterare (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "Lägg till, ta bort och redigera VPN-anslutningar" + +#~ msgid "Saved" +#~ msgstr "Sparad" + +#~ msgid "Always Ask" +#~ msgstr "Fråga alltid" + +#~ msgid "Not Required" +#~ msgstr "Krävs inte" diff --git a/po/ta.po b/po/ta.po new file mode 100644 index 0000000..012a51c --- /dev/null +++ b/po/ta.po @@ -0,0 +1,860 @@ +# translation of network-manager-openvpn.master.ta.po to Tamil +# Tamil translation of network-manager-openvpn. +# Copyright (C) 2009 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# +# ifelix , 2009. +# I. Felix , 2009. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn.master.ta\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-10-30 12:25+0530\n" +"Last-Translator: I. Felix \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\\n\n" +"\n" +"\n" +"\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "அங்கீகரிக்கப்பட்ட VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "கடவுச்சொல்:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "சான்றிதழ் கடவுச்சொல்:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "அங்கீகரிக்கப்பட்ட VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "சான்றிதழ் கடவுச்சொல் (_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "மெய்நிகர் தனிப்பட்ட பிணைய '%s'ஐ அணுக உங்களுக்கு அங்கீகாரம் தேவைப்படுகிறது." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "உங்களது தனிப்பட்ட சான்றிதழை தேர்ந்தெடுக்கவும்..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "உங்களது தனிப்பட்ட விசையை தேர்ந்தெடுக்கவும்..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "ஒரு சான்றிதழ் அங்கீகார சான்றிதழை தேர்ந்தெடுக்கவும்..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "ஒரு திறந்தVPN நிலையான விசையைத் தேர்ந்தெடு..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "ஒன்றுமில்லை" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM சான்றிதழ்கள் (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM சான்றிதழ்கள் (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "திறந்தVPN நிலையான விசைகள் (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "முன்னிருப்பு" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "VPNஐ திறக்கவும்" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "திறந்த VPN சேவையகத்துடன் ஏற்றவும்." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "சான்றிதழ்கள் (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "கடவுச்சொல்" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "கடவுச்சொல்லுடன் சான்றிதழ்கள் (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "நிலையான விசை" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "பொதுவான" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "கேட்வே (_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "அங்கீகாரம்" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "கடவுச்சொற்களைக் காட்டு" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "உங்களது தனிப்பட்ட விசையை தேர்ந்தெடுக்கவும்..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "தனிப்பட்ட விசை கடவுச்சொல்:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "தனிப்பட்ட விசை:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA சான்றிதழ்:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "பயனர் சான்றிதழ்:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "பயனர் பெயர்:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "தொலை IP முகவரி:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "உள்ளமை IP முகவரி:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "விசை திசை:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "நிலையான விசை:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"விசை திசை பயன்படுத்தப்பட்டால், அது VPN பீரில் பயன்படுத்துபடும் எதிரில் இருக்கும். " +"எடுத்துக்காட்டாக, பீர் '1'ஐ பயன்படுத்தினால், இந்த இணைப்பு '0'வை பயன்படுத்தும். நீங்கள் எந்த " +"மதிப்பை பயன்படுத்த வேண்டுமென தெளிவில்லாமல் இருந்தால், உங்கள் கணினி நிர்வாகியை தொடர்பு " +"கொள்ளவும்." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "வகை:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS அங்கீகாரம்" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "கூடுதல் (_v)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "திறந்தVPN கூடுதல் விருப்பங்கள்" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "தனிபயன் கேட்வே துறையைப் பயன்படுத்து (_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "தனிபயன் மறுகுறைத்தல் இடைவெறியை பயன்படுத்து (_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "L_ZO தரவு குறுக்கத்தை பயன்படுத்து" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "ஒரு _TCP இணைப்பை பயன்படுத்து" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +#, fuzzy +msgid "Use custom UDP _fragment size:" +msgstr "தனிபயன் மறுகுறைத்தல் இடைவெறியை பயன்படுத்து (_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "பொது" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "சிப்பர்:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC அங்கீகாரம்:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "பாதுகாப்பு" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "கூடுதல் TLS அங்கீகாரத்தை பயன்படுத்து" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "கூடுதல் TLS அங்கீகாரத்தை பயன்படுத்து" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "விசை திசை:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"விசை திசை பயன்படுத்தப்பட்டால், அது VPN பீரில் பயன்படுத்துபடும் எதிரில் இருக்கும். " +"எடுத்துக்காட்டாக, பீர் '1'ஐ பயன்படுத்தினால், இந்த இணைப்பு '0'வை பயன்படுத்தும். நீங்கள் எந்த " +"மதிப்பை பயன்படுத்த வேண்டுமென தெளிவில்லாமல் இருந்தால், உங்கள் கணினி நிர்வாகியை தொடர்பு " +"கொள்ளவும்." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "விசை கோப்பு:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS அங்கீகாரம்" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "தொலை IP முகவரி:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "(_U) பயனர் பெயர்:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "கடவுச்சொல்:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "கடவுச்சொற்களைக் காட்டு" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "தனிப்பட்ட விசை கடவுச்சொல்:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "கூடுதல் TLS அங்கீகாரத்தை பயன்படுத்து" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "கடவுச்சொல் (_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "இரண்டாவது கடவுச்சொல் (_S):" + +#~ msgid "_Domain:" +#~ msgstr "செய்களம் (_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "பெயரில்லாமல் இணை (_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "பயனராக இணைக்கவும் (_u):" + +#~ msgid "_Remember password for this session" +#~ msgstr "இந்த அமர்வுக்கு கடவுச்சொல்லை நினைவு கொள்ளவும் (_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "கீரிங்கில் கடவுச்சொல்லை சேமிக்கவும் (_S)" + +#~ msgid "Use a TA_P device" +#~ msgstr "ஒரு TA_P சாதனத்தை பயன்படுத்து" diff --git a/po/te.po b/po/te.po new file mode 100644 index 0000000..a708a1c --- /dev/null +++ b/po/te.po @@ -0,0 +1,856 @@ +# translation of network-manager-openvpn.master.te.po to Telugu +# Telugu translation of network-manager-openvpn. +# Copyright (C) 2009 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# +# Krishna Babu K , 2009. +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn.master.te\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2009-10-27 19:25+0530\n" +"Last-Translator: Krishna Babu K \n" +"Language-Team: Telugu \n" +"Language: te\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN దృవీకరించుము" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "సంకేతపదము:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "దృవీకరణపత్రము సంకేతపదము:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN దృవీకరించుము" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "దృవీకరణపత్రము సంకేతపదము (_w):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "వర్చ్యువల్ వ్యక్తిగత నెట్వర్కు '%s'ను యాక్సిస్ చేయుటకు మీరు దృవీకరింపబడవలసి వుంది." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "మీ వ్యక్తిగత దృవీకరణపత్రమును యెంచుకొనుము..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "మీ వ్యక్తిగత కీను యెంచుకొనుము..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "దృవీకరణపత్రము అధికారికం దృవీకరణపత్రము యెంచుకొనుము..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN స్టాటిక్ కీను యెంచుకొనుము..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "ఏదీకాదు" + +#: ../properties/auth-helpers.c:916 +#, fuzzy +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM దృవీకరణపత్రములు (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM దృవీకరణపత్రములు (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN స్టాటిక్ కీలు (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "అప్రమేయం" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +#, fuzzy +msgid "SHA-224" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1203 +#, fuzzy +msgid "SHA-256" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1205 +#, fuzzy +msgid "SHA-384" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1207 +#, fuzzy +msgid "SHA-512" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN సేవికతో సారూప్యం." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "దృవీకరణపత్రములు (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "సంకేతపదము" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "దృవీకరణపత్రములు (TLS)తో సంకేతపదము" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "స్టాటిక్ కీ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "సాదారణ" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "గేట్‌వే (_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "దృవీకరణము" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "సంకేతపదములను చూపుము" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "మీ వ్యక్తిగత కీను యెంచుకొనుము..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "వ్యక్తిగత కీ సంకేతపదము:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "వ్యక్తిగత కీ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA దృవీకరణపత్రము:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "వినియోగదారి దృవీకరణపత్రము:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "వినియోగదారి నామము:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "దూరస్థ IP చిరునామా:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "స్థానిక IP చిరునామా:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "కీ దిశ:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "స్టాటిక్ కీ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"కీ దిశానిర్దేశం వుపయోగించుతుంటే, అది తప్పక VPN పీర్ నందు వుపయోగించన దానికి వ్యతిరేకంగా వుండాలి. " +"ఉదాహరణకు, పీర్ '1' వుపయోగిస్తుంటే, ఈ అనుసంధానం తప్పక '0' వుపయోగించాలి. ఏ విలువ వుపయోగించాలో " +"మీకు ఖచ్చితంగా తెలియకుంటే, మీ సిస్టమ్ నిర్వహణాధికారిని సంప్రదించండి." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "రకము:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "TLS దృవీకరణ" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "అధునాతన... (_v)" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN అధునాతన ఐచ్చికములు" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "మలచుకొనిన గేట్‌వే పోర్టు వుపయోగించుము (_o):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "మలచుకొనిన అచర్చనీయ విరామంను వుపయోగించుము (_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "L_ZO డాటా కుదింపును వుపయోగించుము" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "_TCP అనుసంధానమును వుపయోగించుము" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +#, fuzzy +msgid "Use custom UDP _fragment size:" +msgstr "మలచుకొనిన అచర్చనీయ విరామంను వుపయోగించుము (_r):" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "సాదారణ" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "సైఫర్:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC దృవీకరణము:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "రక్షణ" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "అదనపు TLS దృవీకరణము వుపయోగించుము" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "అదనపు TLS దృవీకరణము వుపయోగించుము" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "కీ దిశ:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"కీ దిశానిర్దేశం వుపయోగించుతుంటే, అది తప్పక VPN పీర్ నందు వుపయోగించన దానికి వ్యతిరేకంగా వుండాలి. " +"ఉదాహరణకు, పీర్ '1' వుపయోగిస్తుంటే, ఈ అనుసంధానం తప్పక '0' వుపయోగించాలి. ఏ విలువ వుపయోగించాలో " +"మీకు ఖచ్చితంగా తెలియకుంటే, మీ సిస్టమ్ నిర్వహణాధికారిని సంప్రదించండి." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "కీ దస్త్రము:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS దృవీకరణ" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +#, fuzzy +msgid "Server _Address:" +msgstr "దూరస్థ IP చిరునామా:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "వినియోగదారినామము (_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "సంకేతపదము:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "సంకేతపదములను చూపుము" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "వ్యక్తిగత కీ సంకేతపదము:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "అదనపు TLS దృవీకరణము వుపయోగించుము" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "సంకేతపదము (_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "రెండవ సంకేతపదము (_S):" + +#~ msgid "_Domain:" +#~ msgstr "డొమైన్ (_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "నామములేకుండా అనుసంధానము అవ్వుము (_a)" + +#~ msgid "Connect as _user:" +#~ msgstr "వినియోగదారివలె అనుసంధానము అవ్వుము(_u):" + +#~ msgid "_Remember password for this session" +#~ msgstr "ఈ సెషన్ కొరకు సంకేతపదమును గుర్తుంచుకొనుము (_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "సంకేతపదమును కీరింగ్ నందు దాయుము (_S)" + +#~ msgid "Use a TA_P device" +#~ msgstr "TA_P పరికరాన్ని వుపయోగించుము" diff --git a/po/th.po b/po/th.po new file mode 100644 index 0000000..2622f1d --- /dev/null +++ b/po/th.po @@ -0,0 +1,1063 @@ +# Thai translation of NetworkManager-openvpn +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the NetworkManager package. +# +# Supranee Thirawatthanasuk , 2007. +# Theppitak Karoonboonyanan , 2007. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2007-02-02 20:53+0700\n" +"Last-Translator: Theppitak Karoonboonyanan \n" +"Language-Team: Thai \n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "ยืนยันตัวบุคคลกับ VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_รหัสผ่าน:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "รหัสผ่านใบรับรอง:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "ยืนยันตัวบุคคลกับ VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "_รหัสผ่านใบรับรอง:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "คุณจะต้องยืนยันตัวบุคคลเพื่อเข้าใช้ Virtual Private Network '%s'" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "เครื่องมือจัดการการเชื่อมต่อ VPN (OpenVPN)" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "เพิ่ม, ลบ และแก้ไข การเชื่อมต่อ VPN" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "ไคลเอนต์ OpenVPN" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "ไคลเอนต์ OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "ใบรับรอง:" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "รหัสผ่าน" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "เ_กตเวย์:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +#, fuzzy +msgid "Authentication" +msgstr "ข้อมูลจำเป็น" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_รหัสผ่าน:" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "รหัสผ่านใบรับรอง:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +#, fuzzy +msgid "Private Key:" +msgstr "กุญแจร่วม:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "ใบรับรอง:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "ใบรับรอง:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "ชื่อผู้ใช้:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "IP ฝั่งโน้น:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "IP ฝั่งนี้:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "ทิศทาง:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "กุญแจร่วม:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "ใช้การบีบบอัด LZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "ใช้การบีบบอัด LZO" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "ใช้การเชื่อมต่อ TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "รหัสลับ: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "ทิศทาง:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "ยืนยันตัวบุคคลกับ VPN" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "_ชื่อผู้ใช้:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_รหัสผ่าน:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_รหัสผ่าน:" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "ชนิดการเชื่อมต่อ:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +#, fuzzy +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "การเข้าระบบ VPN ล้มเหลว เพราะตัวเลือกของค่าตั้ง VPN ไม่ถูกต้อง" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "รหัสผ่านที่_สอง:" + +#~ msgid "_Domain:" +#~ msgstr "โ_ดเมน:" + +#~ msgid "Connect _anonymously" +#~ msgstr "เชื่อมต่อแบบ_นิรนาม" + +#~ msgid "Connect as _user:" +#~ msgstr "เชื่อมต่อในนาม_ผู้ใช้:" + +#~ msgid "_Remember password for this session" +#~ msgstr "_จำรหัสผ่านสำหรับใช้ในวาระนี้" + +#~ msgid "_Save password in keyring" +#~ msgstr "_บันทึกรหัสผ่านลงในพวงกุญแจ" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "จะสร้างการเชื่อมต่อ OpenVPN ต่อไปนี้:" + +#~ msgid "Name: %s" +#~ msgstr "ชื่อ: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "ชนิดการเชื่อมต่อ: ใบรับรอง X.509" + +#~ msgid "CA: %s" +#~ msgstr "CA: %s" + +#~ msgid "Cert: %s" +#~ msgstr "ใบรับรอง: %s" + +#~ msgid "Key: %s" +#~ msgstr "กุญแจ: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "ชนิดการเชื่อมต่อ: กุญแจร่วม" + +#~ msgid "Shared Key: %s" +#~ msgstr "กุญแจร่วม: %s" + +#~ msgid "Local IP: %s" +#~ msgstr "IP ฝั่งนี้: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP ฝั่งโน้น: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "ชนิดการเชื่อมต่อ: รหัสผ่าน" + +#~ msgid "Username: %s" +#~ msgstr "ชื่อผู้ใช้: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "ชนิดการเชื่อมต่อ: X.509 พร้อมการยืนยันตัวบุคคลด้วยรหัสผ่าน" + +#~ msgid "Remote: %s" +#~ msgstr "ฝั่งโน้น: %s" + +#~ msgid "Device: %s" +#~ msgstr "อุปกรณ์: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "โพรโทคอล: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "เส้นทาง: %s" + +#~ msgid "Use LZO Compression: %s" +#~ msgstr "ใช้การบีบอัด LZO: %s" + +#~ msgid "Yes" +#~ msgstr "ใช้" + +#~ msgid "No" +#~ msgstr "ไม่ใช้" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "การยืนยันตัวบุคคลของ TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "รายละเอียดการเชื่อมต่อสามารถเปลี่ยนแปลงได้ โดยใช้ปุ่ม \"แก้ไข\"" + +#~ msgid "Cannot import settings" +#~ msgstr "ไม่สามารถนำเข้าค่าตั้ง" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "แฟ้มค่าตั้ง VPN '%s' มีข้อมูลไม่ถูกต้อง" + +#~ msgid "Select file to import" +#~ msgstr "เลือกแฟ้มที่จะนำเข้า" + +#~ msgid "Select CA to use" +#~ msgstr "เลือก CA ที่จะใช้" + +#~ msgid "Select certificate to use" +#~ msgstr "เลือกใบรับรองที่จะใช้" + +#~ msgid "Select key to use" +#~ msgstr "เลือกกุญแจที่จะใช้" + +#~ msgid "Select shared key to use" +#~ msgstr "เลือกกุญแจร่วมที่จะใช้" + +#~ msgid "Select TA to use" +#~ msgstr "เลือก TA ที่จะใช้" + +#~ msgid "Save as..." +#~ msgstr "บันทึกเป็น..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "มีแฟ้มชื่อ \"%s\" อยู่ก่อนแล้ว" + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "คุณต้องการเขียนทับแฟ้มนี้ด้วยข้อมูลที่กำลังจะบันทึกหรือไม่?" + +#~ msgid "Failed to export configuration" +#~ msgstr "ส่งออกค่าตั้งไม่สำเร็จ" + +#~ msgid "Failed to save file %s" +#~ msgstr "บันทึกแฟ้ม %s ไม่สำเร็จ" + +#~ msgid "0" +#~ msgstr "0" + +#~ msgid "1" +#~ msgstr "1" + +#~ msgid "Connection Name" +#~ msgstr "ชื่อการเชื่อมต่อ" + +#~ msgid "Optional Information" +#~ msgstr "ข้อมูลเสริม" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "ตัวอย่าง: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "CA file:" +#~ msgstr "แฟ้ม CA:" + +#~ msgid "CA file:" +#~ msgstr "แฟ้ม CA:" + +#~ msgid "Key:" +#~ msgstr "กุญแจ:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "กรุณาป้อนข้อมูลที่คุณได้มาจากผู้ดูแลระบบของคุณในแบบฟอร์มข้างล่างนี้ ไม่ต้องป้อนรหัสผ่านที่นี่ " +#~ "เพราะคุณจะถูกถามเมื่อเชื่อมต่อ" + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "โปรดสังเกตว่าแฟ้มที่คุณนำเข้าไม่ใช่แฟ้มค่าตั้ง OpenVPN กรุณาขอแฟ้มค่าตั้งนี้จากผู้ดูแลระบบของคุณ" + +#~ msgid "Shared key" +#~ msgstr "กุญแจร่วม" + +#~ msgid "Use TAP device" +#~ msgstr "ใช้อุปกรณ์ TAP" + +#~ msgid "Use TLS auth:" +#~ msgstr "ใช้การยืนยันตัวบุคคลของ TLS:" + +#~ msgid "Use cipher:" +#~ msgstr "ใช้วิธีเข้ารหัสลับ:" + +#~ msgid "X.509" +#~ msgstr "X.509" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "ใบรับรอง X.509\n" +#~ "กุญแจร่วมกำหนดล่วงหน้า\n" +#~ "การยืนยันตัวบุคคลด้วยรหัสผ่าน\n" +#~ "X.509 พร้อมการยืนยันตัวบุคคลด้วยรหัสผ่าน" + +#~ msgid "_Import Saved Configuration..." +#~ msgstr "_นำเข้าค่าตั้งที่บันทึกไว้..." + +#~ msgid "" +#~ "_Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "_ชื่อที่ใช้แทนการเชื่อมต่อไปยังเครือข่ายส่วนบุคคล เช่น \"VPN มหาวิทยาลัย\" หรือ " +#~ "\"เครือข่ายบริษัท\"" + +#~ msgid "_Only use VPN connection for these addresses" +#~ msgstr "ใ_ช้การเชื่อมต่อ VPN กับที่อยู่เหล่านี้เท่านั้น" + +#~ msgid "none" +#~ msgstr "ไม่มี" + +#~ msgid "" +#~ "The VPN login failed because the user name and password were not accepted " +#~ "or the certificate password was wrong." +#~ msgstr "" +#~ "การเข้าระบบ VPN ล้มเหลว เพราะชื่อผู้ใช้และรหัสผ่านไม่ผ่านการยอมรับ " +#~ "หรือรหัสผ่านใบรับรองไม่ถูกต้อง" + +#~ msgid "The VPN login failed because the VPN program could not be started." +#~ msgstr "การเข้าระบบ VPN ล้มเหลว เพราะโปรแกรม VPN ไม่สามารถเริ่มทำงานได้" + +#~ msgid "" +#~ "The VPN login failed because the VPN program could not connect to the VPN " +#~ "server." +#~ msgstr "" +#~ "การเข้าระบบ VPN ล้มเหลว เพราะโปรแกรม VPN ไม่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์ VPN" + +#~ msgid "" +#~ "The VPN login failed because the VPN program received an invalid " +#~ "configuration from the VPN server." +#~ msgstr "" +#~ "การเข้าระบบ VPN ล้มเหลว เพราะโปรแกรม VPN ได้รับค่าตั้งที่ไม่ถูกต้องจากเซิร์ฟเวอร์ VPN" + +#~ msgid "VPN connection failed" +#~ msgstr "การเชื่อมต่อ VPN ล้มเหลว" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..53bb2e9 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,1179 @@ +# Turkish translation for network-manager-openvpn. +# Copyright (C) 2014 network-manager-openvpn's COPYRIGHT HOLDER +# This file is distributed under the same license as the network-manager-openvpn package. +# Necdet Yücel , 2014. +# Kaan Özdinçer , 2015. +# Muhammet Kara , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=NetworkManager&keywords=I18N+L10N&component=VPN: openvpn\n" +"POT-Creation-Date: 2016-03-16 12:36+0000\n" +"PO-Revision-Date: 2016-03-19 16:43+0200\n" +"Last-Translator: Muhammet Kara \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Gtranslator 2.91.6\n" +"X-POOTLE-MTIME: 1434125932.000000\n" + +#: ../auth-dialog/main.c:180 +#, c-format +msgid "Authenticate VPN %s" +msgstr "%s VPN Kimlik Doğrulaması" + +#: ../auth-dialog/main.c:187 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Parola:" + +#: ../auth-dialog/main.c:194 +msgid "Certificate password:" +msgstr "Sertifika parolası:" + +#: ../auth-dialog/main.c:201 +#| msgid "Proxy Passwor_d:" +msgid "HTTP proxy password:" +msgstr "HTTP vekil sunucu parolası:" + +#: ../auth-dialog/main.c:239 +msgid "Authenticate VPN" +msgstr "VPN Kimlik Doğrulaması" + +#: ../auth-dialog/main.c:248 +msgid "Certificate pass_word:" +msgstr "Sertifika paro_lası:" + +#: ../auth-dialog/main.c:254 +#| msgid "Proxy Passwor_d:" +msgid "_HTTP proxy password:" +msgstr "_HTTP vekil sunucu parolası:" + +#: ../auth-dialog/main.c:518 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"'%s' Sanal Özel Ağına erişmek için kimlik kanıtlaması yapmanız gerekir." + +#: ../properties/auth-helpers.c:167 +msgid "Choose your personal certificate..." +msgstr "Kişisel sertifikanızı seçin..." + +#: ../properties/auth-helpers.c:185 +msgid "Choose your private key..." +msgstr "Özel anahtarınızı seçin..." + +#: ../properties/auth-helpers.c:301 +msgid "Choose a Certificate Authority certificate..." +msgstr "Bir Sertifika Yetkilisi sertifikası seç..." + +#: ../properties/auth-helpers.c:345 +msgid "Choose an OpenVPN static key..." +msgstr "Bir OpenVPN statik anahtarı seçin..." + +#: ../properties/auth-helpers.c:369 ../properties/auth-helpers.c:1110 +#: ../properties/auth-helpers.c:1741 +msgid "None" +msgstr "Hiçbiri" + +#: ../properties/auth-helpers.c:811 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM veya PKCS#12 sertifikaları (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:812 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM sertifikaları (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:872 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN Statik Anahtarları (*.key)" + +#: ../properties/auth-helpers.c:1014 ../properties/auth-helpers.c:1102 +msgid "Default" +msgstr "Varsayılan" + +#: ../properties/auth-helpers.c:1112 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1114 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1116 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1118 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1120 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1122 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1124 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1126 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1177 +msgid "Server" +msgstr "Sunucu" + +#: ../properties/auth-helpers.c:1182 +msgid "Client" +msgstr "İstemci" + +#: ../properties/auth-helpers.c:1450 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Gerekli değil" + +#: ../properties/auth-helpers.c:1452 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1454 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1638 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1640 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1647 +msgid "(automatic)" +msgstr "(otomatik)" + +#: ../properties/auth-helpers.c:1808 +msgid "ping-exit" +msgstr "" + +#: ../properties/auth-helpers.c:1810 +msgid "ping-restart" +msgstr "" + +#: ../properties/import-export.c:212 +#, c-format +msgid "option %s expects between %u and %u argument" +msgid_plural "option %s expects between %u and %u arguments" +msgstr[0] "" + +#: ../properties/import-export.c:217 +#, c-format +msgid "option %s expects no arguments" +msgstr "" + +#: ../properties/import-export.c:219 +#, c-format +msgid "option %s expects exactly one argument" +msgid_plural "option %s expects exactly %u arguments" +msgstr[0] "" + +#: ../properties/import-export.c:248 +#, c-format +msgid "argument %s of \"%s\" can not be empty" +msgstr "" + +#: ../properties/import-export.c:250 +#, c-format +msgid "argument of \"%s\" can not be empty" +msgstr "" + +#: ../properties/import-export.c:266 +#, c-format +msgid "argument %s of \"%s\" must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:268 +#, c-format +msgid "argument of \"%s\" must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:292 +#, c-format +msgid "invalid %uth argument to '%s' where number expected" +msgstr "" + +#: ../properties/import-export.c:323 +#, c-format +msgid "invalid %uth argument to '%s' where IPv4 address expected" +msgstr "" + +#: ../properties/import-export.c:351 +#, c-format +msgid "invalid %uth key-direction argument to '%s'" +msgstr "" + +#: ../properties/import-export.c:365 +#, fuzzy, c-format +#| msgid "Invalid fragment size '%s'." +msgid "invalid %uth argument to '%s'" +msgstr "Geçersiz parça boyutu '%s'." + +#: ../properties/import-export.c:479 +#, c-format +msgid "unterminated %s at position %lld" +msgstr "" + +#: ../properties/import-export.c:480 +msgid "double quote" +msgstr "çift tırnak" + +#: ../properties/import-export.c:480 +msgid "single quote" +msgstr "tek tırnak" + +#: ../properties/import-export.c:489 +#, c-format +msgid "trailing escaping backslash at position %lld" +msgstr "" + +#: ../properties/import-export.c:608 +#, c-format +msgid "unable to read HTTP proxy auth file" +msgstr "" + +#: ../properties/import-export.c:626 +#, c-format +msgid "cannot read user/password from HTTP proxy auth file" +msgstr "" + +#: ../properties/import-export.c:634 +#, c-format +msgid "user/password from HTTP proxy auth file must be UTF-8 encoded" +msgstr "" + +#: ../properties/import-export.c:696 +#, c-format +msgid "'%s' is not a directory" +msgstr "" + +#: ../properties/import-export.c:704 +#, c-format +msgid "cannot create '%s' directory" +msgstr "" + +#: ../properties/import-export.c:724 +#, c-format +msgid "cannot write <%s> blob from line %ld to file (%s)" +msgstr "" + +#: ../properties/import-export.c:741 +#, c-format +msgid "cannot write <%s> blob from line %ld to file '%s'" +msgstr "" + +#: ../properties/import-export.c:925 +#, c-format +msgid "unsupported comp-lzo argument" +msgstr "" + +#: ../properties/import-export.c:1013 +#, c-format +msgid "remote cannot contain space" +msgstr "" + +#: ../properties/import-export.c:1017 +#, c-format +msgid "remote cannot contain comma" +msgstr "" + +#: ../properties/import-export.c:1028 +#, c-format +msgid "remote expects protocol either udp or remote" +msgstr "" + +#: ../properties/import-export.c:1199 +#, fuzzy, c-format +#| msgid "Invalid connection type." +msgid "invalid option" +msgstr "Geçersiz bağlantı türü" + +#: ../properties/import-export.c:1312 +#, c-format +msgid "unsupported blob/xml element" +msgstr "" + +#: ../properties/import-export.c:1341 +#, c-format +msgid "unterminated blob element <%s>" +msgstr "" + +#: ../properties/import-export.c:1391 +#, c-format +msgid "configuration error: %s (line %ld)" +msgstr "" + +#: ../properties/import-export.c:1392 +msgid "unknown or unsupported option" +msgstr "bilinmeyen ya da desteklenmeyen seçenek" + +#: ../properties/import-export.c:1402 +#, fuzzy +#| msgid "The file to import wasn't a valid OpenVPN client configuration." +msgid "The file to import wasn't a valid OpenVPN client configuration" +msgstr "" +"İçe aktarılacak olan dosya, geçerli bir OpenVPN istemci yapılandırması değil." + +#: ../properties/import-export.c:1410 +#, fuzzy +#| msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgid "The file to import wasn't a valid OpenVPN configure (no remote)" +msgstr "" +"İçe aktarılacak olan dosya, geçerli bir OpenVPN yapılandırması değil (uzak " +"olmayan)." + +#: ../properties/import-export.c:1552 +msgid "could not open file for writing" +msgstr "dosya yazmak için açılamadı" + +#: ../properties/import-export.c:1563 +msgid "connection was incomplete (missing gateway)" +msgstr "bağlantı tamamlanamadı (eksik ağ geçidi)" + +#: ../properties/nm-openvpn.c:44 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:45 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN sunucusu ile uyumludur." + +#: ../properties/nm-openvpn.c:329 +msgid "Certificates (TLS)" +msgstr "Sertifikalar (TLS)" + +#: ../properties/nm-openvpn.c:340 +msgid "Password" +msgstr "Parola" + +#: ../properties/nm-openvpn.c:353 +msgid "Password with Certificates (TLS)" +msgstr "Sertifika ile Parola (TLS)" + +#: ../properties/nm-openvpn.c:365 +msgid "Static Key" +msgstr "Sabit Anahtar" + +#: ../properties/nm-openvpn.c:513 +msgid "could not create openvpn object" +msgstr "openvpn nesnesi oluşturulamadı" + +#: ../properties/nm-openvpn.c:539 +msgid "could not load UI widget" +msgstr "UI parçacığı yüklenemedi" + +#: ../properties/nm-openvpn.c:630 +msgid "unknown OpenVPN file extension" +msgstr "bilinmeyen OpenVPN dosya uzantısı" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Genel" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Ağ geçidi:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" +"İsteğe bağlı bağlantı noktası ve protokol ile uzak ağ geçit(ler)i (örneğin " +"ovpn.corp.com:1234:tcp). Yedeklilik için birden fazla istemci " +"belirtebilirsiniz.\n" +"yapılandırma: remote" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Kimlik Doğrulama" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "_Parolaları göster" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "Özel anahtar için parola" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Özel Anahtar Parolası:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"Yerel ucun .pem biçiminde özel anahtarı.\n" +"yapılandırma: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Özal Anahtar:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +".pem biçiminde sertifika yetkilisi (CA) dosyası.\n" +"yapılandırma: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA Sertifikası:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Kullanıcı Sertifikası:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"Yerel ucun .pem formatındaki imzalanmış sertifikası (CA sertifikasının CA'sı " +"tarafından imzalanmış).\n" +"yapılandırma: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Parola sorulduğunda OpenVPN'e geçildi.\n" +"yapılandırma: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Kullanıcı adı:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"Kullanıcı adı sorulduğunda OpenVPN'e geçildi.\n" +"yapılandırma: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Yerel VPN ucunun IP adresi.\n" +"yapılandırma: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Uzak IP Adresi:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Yerel IP Adresi:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"Uzak VPN ucunun IP adresi:\n" +"yapılandırma: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "Anahtar Yönü:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Sabit Anahtar:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"Statik Anahtar şifreleme kipi (non-TLS) için önceden paylaşılmış dosya.\n" +"yapılandırma: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Statik Anahtar şifreleme kipi (non-TLS) için yön:\n" +"Eğer anahtar yönü kullanılırsa, bu VPN ucunun kullandığının tersi " +"olmalıdır. Örneğin; eğer diğer uç '1' kullanıyorsa bu bağlantı '0' " +"kullanmalıdır. Hangi değeri kullanacağınızdan emin değilseniz sistem " +"yöneticinize danışın.\n" +"yapılandırma: static [yön]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Tür:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "Bir kimlik doğrulama yöntemi seçin." + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "Ge_lişmiş..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN Gelişmiş Seçenekleri" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Özel ağ geçidi bağlantı n_oktası kullan:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for peer. (Default value when there is no port for " +"gateway).\n" +"config: port" +msgstr "" +"Paylaşımcı için TCP/UDP bağlantı noktası. (Ağ geçidi için bağlantı noktası " +"olmadığında kullanılacak olan varsayılan değer.)\n" +"yapılandırma: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Özel tek_rar anlaşma aralığı kullan:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"Belirtildiği kadar saniye sonra veri kanalı anahtarını yeniden dene.\n" +"yapılandırma: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "L_ZO sıkıştırması kullan" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"Hızlı LZO sıkıştırması kullan.\n" +"yapıalndırma: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "_TCP bağlantısı kullan" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"(This is a default setting only used when no protocol is specified for the " +"gateway.)\n" +"config: proto tcp-client | udp" +msgstr "" +"Uzak makine haberleşmesi için TCP kullan.\n" +"(Sadece, ağ geçidi için belirtilmiş bir protokol olmadığında kullanılan " +"varsayılan ayardır.)\n" +"yapılandırma: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Set virtual _device type:" +msgstr "Sanal _aygıt türünü ayarla:" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "Sanal aygıt türünü ve adını (TNU/TAP) açıkça ayarlayın." + +#: ../properties/nm-openvpn-dialog.ui.h:58 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"Sanal aygıt türünü (TUN/TAP) açıkça ayarlayın.\n" +"yapılandırma: dev-type tun | tap" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid " and _name:" +msgstr " ve _adı:" + +#: ../properties/nm-openvpn-dialog.ui.h:61 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" +"Sanal TUN/TAP aygıtı için özel isim kullan (\"tun\" veya \"tap\" " +"haricinde).\n" +"yapılandırma: dev " + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "Özel t_ünel En Fazla Aktarım Birimi (MTU) kullan:" + +#: ../properties/nm-openvpn-dialog.ui.h:64 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"TUN aygıtının MTU değerini belirtilen değer olarak al ve bağlantı MTU " +"değerini ondan türet.\n" +"yapılandırma: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "Use custom UDP _fragment size:" +msgstr "Özel UDP _parça boyutu kullan:" + +#: ../properties/nm-openvpn-dialog.ui.h:67 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"Bu en fazla değer ile dahili datagram parçalanmasını etkinleştir.\n" +"yapılandırma: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Azami tünel TCP parça boyutunu (MS_S) kısıtla" + +#: ../properties/nm-openvpn-dialog.ui.h:70 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"Tünel TCP MSS değerini kısıtla.\n" +"yapılandırma: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "Rando_mize remote hosts" +msgstr "Uzak iste_mcileri rastgele seç" + +#: ../properties/nm-openvpn-dialog.ui.h:73 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" +"Ağ geçitleri listesinin (uzak) sırasını temel bir yük dağıtımı ölçüsü olarak " +"rastgele seç.\n" +"yapılandırma: remote-random" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "IPv6 tun link" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:76 +msgid "" +"Build a tun link capable of forwarding IPv6 traffic\n" +"config: tun-ipv6" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "Accept authenticated packets from any address (F_loat)" +msgstr "Herhangi bir adresten gelen doğrulanmış paketleri kabul et (F_loat)" + +#: ../properties/nm-openvpn-dialog.ui.h:79 +msgid "" +"Allow remote peer to change its IP address and/or port number, such as due " +"to DHCP (this is the default if --remote is not used). --float when " +"specified with --remote allows an OpenVPN session to initially connect to a " +"peer at a known address, however if packets arrive from a new address " +"and pass all authentication tests, the new address will take control of the " +"session. This is useful when you are connecting to a peer which holds a " +"dynamic address such as a dial-in user or DHCP client.\n" +"\n" +"Essentially, --float tells OpenVPN to accept authenticated packets from any " +"address, not only the address which was specified in the --remote option.\n" +"\n" +"config: float" +msgstr "" +"Uzak paylaşımcıya, IP adresini ve/veya bağlantı noktasını DHCP üzerinden " +"değiştirmesi için izin ver (--remote seçeneği kullanılmıyorsa " +"varsayılandır). --remote ile bilinen bir adresten OpenVPN oturumuna izin " +"verildiğinde --float kullan ve bilinen adresten bir başlangıç bağlantısı " +"oluştur. Ayrıca paket yeni adresten ulaşırsa, tüm doğrulama testlerini geç " +"ve yeni adres oturumun kontrolünü eline alsın. Bu, DHCP istemcisi ya " +"telefon kullanıcısı gibi devingen adreslere sahip olan paylaşımcıların " +"bağlantısı için kullanışlıdır.\n" +"\n" +"Esas itibariyle --float, --remote seçeneğinden belirtilen herhangi bir " +"adrese, herhangi bir adresten doğrulanmış paketleri kabul etmesini OpenVPN " +"'e söyler.\n" +"\n" +"yapılandırma: float" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Specify pin_g interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "" +"Ping remote over the TCP/UDP control channel if no packets have been sent " +"for at least n seconds.\n" +"config: ping " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:87 +msgid "Specify _exit or restart ping:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Exit or restart after n seconds pass without reception of a ping or other " +"packet from remote.\n" +"config: ping-exit | ping-restart " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "General" +msgstr "Genel" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"Paketleri bu şifreleme algoritmasıyla şifrele. Varsayılan BF-CBC " +"algoritmasıdır.\n" +"yapılandırma: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "Use custom _size of cipher key:" +msgstr "Özel _boyutlu şifreleme anahtarı kullan:" + +#: ../properties/nm-openvpn-dialog.ui.h:94 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" +"Şifreleme anahtar boyutunu özel bir değer olarak ayarla. Belirtilmezse " +"şifrelemeye özel varsayılan değer kullanılır.\n" +"yapılandırma: keysize " + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"HMAC ileti özeti algoritmasını kullanarak paketlerin kimlik doğrulaması yap." +"Varsayılan SHA1'dir.\n" +"yapılandırma: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "Ci_pher:" +msgstr "Şi_freleme:" + +#: ../properties/nm-openvpn-dialog.ui.h:99 +msgid "_HMAC Authentication:" +msgstr "_HMAC Kimlik Doğrulaması:" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "Security" +msgstr "Güvenlik" + +#: ../properties/nm-openvpn-dialog.ui.h:101 +msgid "_Subject Match:" +msgstr "_Konu Eşleşmesi:" + +#: ../properties/nm-openvpn-dialog.ui.h:102 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"Sadece belirtilen konuyla eşleşen sertifikaya sahip sunuculara bağlan.\n" +"Örnek: /CN=vpnim.sirket.com" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"Sadece X509 adı olan veya belirtilen birine eşit ortak adı olan bir " +"bilgisayardan bağlantıları kabul et.\n" +"yapılandırma: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:106 +msgid "_Verify peer (server) certificate usage signature" +msgstr "_Karşı uç (sunucu) sertifikasını imza kullanarak doğrula" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" +"Diğer ucun sertifikasının kesin anahtar kullanımı ve RFC3280 TLS kurallarına " +"dayanan genişletilmiş anahtar kullanımı ile imzalanmış olmasını gerektir." + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "_Remote peer certificate TLS type:" +msgstr "_Uzak uç sertifika TLS türü:" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" +"Diğer ucun sertifikasının kesin anahtar kullanımı ve RFC3280 TLS kurallarına " +"dayanan genişletilmiş anahtar kullanımı ile imzalanmış olmasını gerektir." + +#: ../properties/nm-openvpn-dialog.ui.h:111 +msgid "Use additional _TLS authentication" +msgstr "Ek _TLS kimlik doğrulaması kullan" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "Add an additional layer of HMAC authentication." +msgstr "Ek HMAC kimlik doğrulaması katmanı ekle." + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "Key _Direction:" +msgstr "Anahtar _Yönü:" + +#: ../properties/nm-openvpn-dialog.ui.h:114 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"DoS saldırılarına karşı güvenlik sağlamak için TLS kontrol kanalının üzerine " +"ek bir HMAC kimlik doğrulama katmanı ekler.\n" +"yapıalndırma: tls-auth [yön]" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Statik anahtar kipi için parametre yönü.\n" +"Eğer anahtar yönü kullanılırsa, bu VPN ucunun kullandığının tersi " +"olmalıdır. Örneğin; eğer diğer uç '1' kullanıyorsa bu bağlantı '0' " +"kullanmalıdır. Hangi değeri kullanacağınızdan emin değilseniz sistem " +"yöneticinize danışın.\n" +"yapılandırma: tls-auth [yön]" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Key _File:" +msgstr "Anahtar _Dosyası:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "TLS Authentication" +msgstr "TLS Kimlik Doğrulaması" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Vekil sunucu türü: HTTP veya Socks.\n" +"yapılandırma: http-proxy veya socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxy _Type:" +msgstr "Vekil Sunucu _Türü:" + +#: ../properties/nm-openvpn-dialog.ui.h:124 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Eğer kurumunuz internet bağlantısı için bir vekil sunucu kullanmayı " +"gerektiriyorsa bu seçeneği seçin." + +#: ../properties/nm-openvpn-dialog.ui.h:125 +msgid "Server _Address:" +msgstr "Sunucu _Adresi:" + +#: ../properties/nm-openvpn-dialog.ui.h:126 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Uzak makineye bu vekil sunucu adresiyle bağlan.\n" +"yapılandırma: http-proxy veya socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:128 +msgid "_Port:" +msgstr "_Bağlantı Noktası:" + +#: ../properties/nm-openvpn-dialog.ui.h:129 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"Uzak makineye bu vekil sunucu bağlantı noktasıyla bağlan.\n" +"yapılandırma: http-proxy veya socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:131 +msgid "_Retry indefinitely when errors occur" +msgstr "_Hata oluştuğunda sonsuz kez dene" + +#: ../properties/nm-openvpn-dialog.ui.h:132 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"Vekil sunucu hatalarında sürekli yeniden dene. SIGUSR1 sıfırlamasını taklit " +"eder.\n" +"yapılandırma: http-proxy-retry veya socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:134 +msgid "Proxy _Username:" +msgstr "Vekil _Sunucu Kullanıcı Adı:" + +#: ../properties/nm-openvpn-dialog.ui.h:135 +msgid "Proxy Passwor_d:" +msgstr "Vekil Sunucu _Parolası:" + +#: ../properties/nm-openvpn-dialog.ui.h:136 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks vekil sunucu kullanıcı adı sorulduğunda OpenVPN'e geçildi." + +#: ../properties/nm-openvpn-dialog.ui.h:137 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "HTTP/Socks vekil sunucu parolası sorulduğunda OpenVPN'e geçildi." + +#: ../properties/nm-openvpn-dialog.ui.h:138 +msgid "_Show password" +msgstr "_Parolayı göster" + +#: ../properties/nm-openvpn-dialog.ui.h:139 +msgid "Proxies" +msgstr "Vekil sunucular" + +#: ../src/nm-openvpn-service.c:358 +#, c-format +msgid "invalid address '%s'" +msgstr "geçersiz adres '%s'" + +#: ../src/nm-openvpn-service.c:370 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "'%s' geçersiz bir tamsayı veya sınırların dışında [%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:381 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "'%s' geçersiz bir mantıksal sabit (evet veya hayır değil)" + +#: ../src/nm-openvpn-service.c:388 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "tanınmayan özellik '%s' tür %s" + +#: ../src/nm-openvpn-service.c:399 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "'%s' özelliği geçersiz veya desteklenmiyor" + +#: ../src/nm-openvpn-service.c:415 +msgid "No VPN configuration options." +msgstr "VPN yapılandırma seçeneği bulunamadı." + +#: ../src/nm-openvpn-service.c:584 +msgid "A username is required." +msgstr "Bir kullanıcı adı gerekiyor." + +#: ../src/nm-openvpn-service.c:588 +msgid "A password is required." +msgstr "Bir parola gerekiyor." + +#: ../src/nm-openvpn-service.c:591 +msgid "A username and password are required." +msgstr "Bir kullanıcı adı ve parola gerekiyor." + +#: ../src/nm-openvpn-service.c:611 +msgid "A private key password is required." +msgstr "Bir özel anahtar parolası gerekli." + +#: ../src/nm-openvpn-service.c:624 +msgid "An HTTP Proxy username is required." +msgstr "Bir HTTP Vekil Sunucu kullanıcı adı gerekiyor." + +#: ../src/nm-openvpn-service.c:628 +msgid "An HTTP Proxy password is required." +msgstr "Bir HTTP Vekil Sunucu kullanıcı parolası gerekiyor." + +#: ../src/nm-openvpn-service.c:631 +msgid "An HTTP Proxy username and password are required." +msgstr "Bir HTTP Vekil Sunucu kullanıcı adı ve parolası gerekiyor." + +#: ../src/nm-openvpn-service.c:1113 +msgid "Could not find the openvpn binary." +msgstr "openvpn uygulaması bulunamıyor." + +#: ../src/nm-openvpn-service.c:1123 +msgid "Invalid HMAC auth." +msgstr "Geçersiz HMAC doğrulaması." + +#: ../src/nm-openvpn-service.c:1133 ../src/nm-openvpn-service.c:1826 +msgid "Invalid connection type." +msgstr "Geçersiz bağlantı türü" + +#: ../src/nm-openvpn-service.c:1168 ../src/nm-openvpn-service.c:1178 +#, c-format +msgid "Invalid port number '%s'." +msgstr "Geçersiz bağlantı noktası '%s'." + +#: ../src/nm-openvpn-service.c:1195 +#, c-format +msgid "Invalid proto '%s'." +msgstr "Geçersiz proto '%s'." + +#: ../src/nm-openvpn-service.c:1241 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "Geçersiz vekil sunucu türü '%s'." + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +#| msgid "Invalid proto '%s'." +msgid "Invalid ping duration '%s'." +msgstr "Geçersiz proto '%s'." + +#: ../src/nm-openvpn-service.c:1278 +#, fuzzy, c-format +#| msgid "Invalid proto '%s'." +msgid "Invalid ping-exit duration '%s'." +msgstr "Geçersiz proto '%s'." + +#: ../src/nm-openvpn-service.c:1292 +#, fuzzy, c-format +#| msgid "Invalid port number '%s'." +msgid "Invalid ping-restart duration '%s'." +msgstr "Geçersiz bağlantı noktası '%s'." + +#: ../src/nm-openvpn-service.c:1344 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "Geçersiz anahtar boyutu '%s'." + +#: ../src/nm-openvpn-service.c:1394 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "Geçersiz reneg süresi '%s'." + +#: ../src/nm-openvpn-service.c:1426 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "Geçersiz TUN MTU boyutu '%s'." + +#: ../src/nm-openvpn-service.c:1441 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "Geçersiz parça boyutu '%s'." + +#: ../src/nm-openvpn-service.c:1517 +msgid "Missing required local IP address for static key mode." +msgstr "Statik anahtar kipi için gerekli yerel IP adresi eksik." + +#: ../src/nm-openvpn-service.c:1529 +msgid "Missing required remote IP address for static key mode." +msgstr "Statik anahtar kipi için gerekli uzak IP adresi eksik." + +#: ../src/nm-openvpn-service.c:1554 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "Bilinmeyen bağlantı türü '%s'." + +#: ../src/nm-openvpn-service.c:1579 +#, c-format +msgid "User '%s' not found, check NM_OPENVPN_USER." +msgstr "" + +#: ../src/nm-openvpn-service.c:1593 +#, c-format +msgid "Group '%s' not found, check NM_OPENVPN_GROUP." +msgstr "" + +#: ../src/nm-openvpn-service.c:1740 ../src/nm-openvpn-service.c:1817 +#: ../src/nm-openvpn-service.c:1851 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "VPN bağlantı ayarları geçersiz olduğundan istek işlenemedi." + +#: ../src/nm-openvpn-service.c:1749 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "Openvpn bağlantı türü geçersiz olduğundan istek işlenemedi." + +#: ../src/nm-openvpn-service.c:1864 +msgid "Unhandled pending authentication." +msgstr "İşlenmemiş bekleyen kimlik doğrulaması." + +#: ../src/nm-openvpn-service.c:1982 +msgid "Don't quit when VPN connection terminates" +msgstr "VPN bağlantısı sonlandığında çıkma" + +#: ../src/nm-openvpn-service.c:1983 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" +"Ayrıntılı hata ayıklama günlüklemesini etkinleştir (parolaları görünür " +"yapabilir)" + +#: ../src/nm-openvpn-service.c:1984 +msgid "D-Bus name to use for this instance" +msgstr "" + +#: ../src/nm-openvpn-service.c:2010 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "nm-openvpn-service, NetworkManager'a tümleşik OpenVPN yeteneği sağlar." + +#~ msgid "Saved" +#~ msgstr "Kaydedildi" + +#~ msgid "Always Ask" +#~ msgstr "Daima Sor" + +#~ msgid "Not Required" +#~ msgstr "Gerekli Değil" + +#~ msgid "not a valid OpenVPN configuration file" +#~ msgstr "OpenVPN yapılandırma dosyası geçerli değil" + +#~ msgid "VPN Connection Manager (OpenVPN)" +#~ msgstr "VPN Bağlantı Yöneticisi (OpenVPN)" + +#~ msgid "Add, Remove, and Edit VPN Connections" +#~ msgstr "VPN Bağlantılarını Ekle, Çıkart ve Düzenle" diff --git a/po/ug.po b/po/ug.po new file mode 100644 index 0000000..398d64a --- /dev/null +++ b/po/ug.po @@ -0,0 +1,836 @@ +# Uyghur translation for network-manager-openvpn. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Gheyret Kenji , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: network-manager-openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-01-31 15:04+0000\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "VPN دەلىللەش" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "ئىم(_P):" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "گۇۋاھنامە ئىمى:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "VPN دەلىللەش" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "گۇۋاھنامە ئىمى(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"مەۋھۇم شەخسىي تور(VPN) '%s' نى زىيارەت قىلىش ئۈچۈن دەلىللەشتىن ئۆتىشىڭىز " +"كېرەك." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "شەخسىي ئىسپاتنامىڭىزنى تاللاڭ..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "شەخسىي ئاچقۇچىڭىزنى تاللاڭ..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "زۆرۈر ئەمەس" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "OpenVPN تىنچ ئاچقۇچىنى تاللايدۇ..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "يوق" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM ياكى PKCS#12 ئىسپاتنامىلىرى (*.pem، *.crt، *.key، *.cer، *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM ئىسپاتنامىلىرى (*.pem، *.crt، *.key، *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN تىنچ ئاچقۇچى(*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "كۆڭۈلدىكى" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "زۆرۈر ئەمەس" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "OpenVPN مۇلازىمېتىرى بىلەن ماسلىشىدۇ." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "گۇۋاھنامىلەر(TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "ئىم" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "ئىمى بار گۇۋاھنامىلەر(TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "تىنچ ئاچقۇچ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "ئىم(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "شەخسىي ئاچقۇچىڭىزنى تاللاڭ..." + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "گۇۋاھنامە ئىمى:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "گۇۋاھنامە ئىمى:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "گۇۋاھنامە ئىمى:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "ئىشلەتكۈچى ئاتى(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +msgid "Key Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "تىنچ ئاچقۇچ" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "VPN دەلىللەش" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "ئىشلەتكۈچى ئاتى(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "ئىم(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "ئىم(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "ئىككىنچى ئىم(_S):" + +#~ msgid "_Domain:" +#~ msgstr "دائىرە(_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "ئاتسىز باغلىنىش(_A)" + +#~ msgid "Connect as _user:" +#~ msgstr "باغلىنىش سالاھىيىتى(_U):" + +#~ msgid "_Remember password for this session" +#~ msgstr "بۇ ئەڭگىمەدە ئىمنى ئەستە تۇت(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "ئىمنى keyring دا ساقلا(_S)" diff --git a/po/uk.po b/po/uk.po new file mode 100644 index 0000000..e82cbad --- /dev/null +++ b/po/uk.po @@ -0,0 +1,860 @@ +# Ukrainian translation of NetworkManager openvpn +# Copyright (C) Free Software Foundation, 2005 +# This file is distributed under the same license as the NetworkManager package. +# Maxim Dziumanenko , 2005-2007 +# Korostil Daniel , 2011. +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager openvpn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-03-15 06:15+0300\n" +"Last-Translator: Korostil Daniel \n" +"Language-Team: translation@linux.org.ua\n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Virtaal 0.6.1\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Автентифікація VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "Пароль:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Пароль сертифіката:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Автентифікація VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Па_роль сертифіката:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "" +"Для доступу до віртуальної приватної мережі «%s» потрібна автентифікація." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "Виберіть ваш особистий сертифікат…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "Виберіть ваш особистий ключ…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "Не потрібно" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "Виберіть сертифікат видавця…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "Виберіть статичний ключ OpenVPN…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "Немає" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "Сертифікати PEM чи PKCS#12 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "Сертифікати PEM (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "Статичні ключі OpenVPN (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "Типово" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "Не потрібно" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "Сумісний з сервером OpenVPN." + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "Сертифікати (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "Пароль" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "Пароль з сертифікатами (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "Статичний ключ" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "Загальне" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "_Шлюз:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "Автентифікації" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "Показати паролі" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "Виберіть ваш особистий ключ…" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "Пароль особистого ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "Особистий ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "Сертифікат CA:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "Сертифікат користувача:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "Користувач:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "Віддалена адреса IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "Локальна адреса IP:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Напрямок ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "Статичний ключ:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"Якщо використовується напрямок ключа, він має бути протилежним напрямком " +"відносно того, який використовує друга сторона. Наприклад, якщо друга " +"сторона використовує «1», це з'єднання має використовувати «0». Якщо ви не " +"впевнені, яке значення використовувати, зв'яжіться із системним " +"адміністратором." + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "Тип:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +#, fuzzy +msgid "Select an authentication mode." +msgstr "Автентифікація TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "_Додатково…" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Додаткові параметри OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "Використовувати інший _порт шлюзу:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "Використовувати власний _повторних переговорів інтервал:" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "Використовувати стиснення L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "Використовувати з'єднання _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" +"Використовувати нестандартний максимальний _розмір елементу передачі (MTU):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "Використовувати нестандартний розмір _фрагменту UDP:" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "Обмежувати максимальний розмір сегменту TCP (MSS) тунелю" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "Загальне" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "Шифр:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "Аутентифікація HMAC:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "Безпека" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "Об'єкт збігу:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"З'єднуватись лише з серверами, чиї сертифікати збігаються з вказаним " +"об'єктом.\n" +"Приклад: /CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "Додаткова автентифікація TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +#, fuzzy +msgid "Add an additional layer of HMAC authentication." +msgstr "Додаткова автентифікація TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "Напрямок ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"Якщо використовується напрямок ключа, він має бути протилежним напрямком " +"відносно того, який використовує друга сторона. Наприклад, якщо друга " +"сторона використовує «1», це з'єднання має використовувати «0». Якщо ви не " +"впевнені, яке значення використовувати, зв'яжіться із системним " +"адміністратором." + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "Файл ключа:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "Автентифікація TLS" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "Тип проксі-сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" +"Виберіть цей параметр, якщо для доступу до інтернет у вашій організації " +"використовується проксі-сервер." + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "Адреса сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "Порт:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "Повторити незалежно від того, чи станеться помилка" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "Користувач на проксі-сервері:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "Пароль проксі-сервера:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "Показати пароль" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "Проксі-сервери" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "Пароль особистого ключа:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "Додаткова автентифікація TLS" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Password:" +#~ msgstr "_Пароль:" + +#~ msgid "_Secondary Password:" +#~ msgstr "_Вторинний пароль:" + +#~ msgid "_Username:" +#~ msgstr "_Користувач:" + +#~ msgid "_Domain:" +#~ msgstr "_Домен:" + +#~ msgid "Connect _anonymously" +#~ msgstr "З'єднуватись _анонімно" + +#~ msgid "Connect as _user:" +#~ msgstr "З'єднуватись як _користувач" + +#~ msgid "_Remember password for this session" +#~ msgstr "Па_м'ятати пароль для цього сеансу" + +#~ msgid "_Save password in keyring" +#~ msgstr "З_берегти пароль у в'язці паролів" + +#~ msgid "Use a TA_P device" +#~ msgstr "Використовувати пристрій TA_P" diff --git a/po/vi.po b/po/vi.po new file mode 100644 index 0000000..d8dad29 --- /dev/null +++ b/po/vi.po @@ -0,0 +1,1043 @@ +# Vietnamese translation for Network Manager Open VPN. +# Copyright © 2008 Free Software Foundation, Inc. +# Clytie Siddall , 2006-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn GNOME TRUNK\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2008-06-06 14:34+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "Xác thực VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +#, fuzzy +msgid "Password:" +msgstr "_Mật khẩu :" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "Mật khẩu chứng nhận:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "Xác thực VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "Mật _khẩu chứng nhận:" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "Bạn cần phải xác thực để truy cập Mạng Riêng Ảo (VPN) « %s »." + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +#, fuzzy +msgid "Default" +msgstr "(Mặc định: 1194)" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +#, fuzzy +msgid "Client" +msgstr "Ứng dụng khách OpenVPN" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "TUN" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "TAP" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +#, fuzzy +msgid "OpenVPN" +msgstr "Ứng dụng khách OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "" + +#: ../properties/nm-openvpn.c:369 +#, fuzzy +msgid "Certificates (TLS)" +msgstr "C_hứng nhận:" + +#: ../properties/nm-openvpn.c:380 +#, fuzzy +msgid "Password" +msgstr "_Mật khẩu :" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "Cấu hình OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +#, fuzzy +msgid "_Gateway:" +msgstr "Cổn_g là cổng ra:" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "_Mật khẩu :" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "Mật khẩu chứng nhận:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +#, fuzzy +msgid "CA Certificate:" +msgstr "C_hứng nhận:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "C_hứng nhận:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "_Tên người dùng:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "IP ở _xa:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +#, fuzzy +msgid "Local IP Address:" +msgstr "IP cục bộ : %s" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "Hướng:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +#, fuzzy +msgid "Ad_vanced..." +msgstr "Cấp ca_o" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "Tùy chọn cấp cao OpenVPN" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +#, fuzzy +msgid "Use custom gateway p_ort:" +msgstr "Cổn_g là cổng ra:" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +#, fuzzy +msgid "Use L_ZO data compression" +msgstr "Nén bằng L_ZO" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +#, fuzzy +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "Nén bằng LZO: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +#, fuzzy +msgid "Use a _TCP connection" +msgstr "Dùng kết nối _TCP" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +#, fuzzy +msgid "Ci_pher:" +msgstr "Mật mã: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +#, fuzzy +msgid "Key _Direction:" +msgstr "Hướng:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "Xác thực VPN" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +#, fuzzy +msgid "_Port:" +msgstr "Cổng: %s" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "_Tên người dùng:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "_Mật khẩu :" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "_Mật khẩu :" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +#, fuzzy +msgid "No VPN configuration options." +msgstr "Cấu hình OpenVPN" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +#, fuzzy +msgid "Invalid connection type." +msgstr "Kiểu kết _nối:" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, fuzzy, c-format +msgid "Unknown connection type '%s'." +msgstr "Kiểu kết _nối:" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "Mật khẩu _phụ :" + +#~ msgid "_Domain:" +#~ msgstr "_Miền:" + +#~ msgid "Connect _anonymously" +#~ msgstr "Kết nối nặc d_anh" + +#~ msgid "Connect as _user:" +#~ msgstr "Kết nối _với tư cách người dùng:" + +#~ msgid "_Remember password for this session" +#~ msgstr "Nhớ mật khẩu cho _buổi hợp này" + +#~ msgid "_Save password in keyring" +#~ msgstr "_Lưu mật khẩu trong vòng khoá" + +#~ msgid "The following OpenVPN connection will be created:" +#~ msgstr "Kết nối OpenVPN này sẽ được tạo :" + +#~ msgid "Name: %s" +#~ msgstr "Tên: %s" + +#~ msgid "Connection Type: X.509 Certificates" +#~ msgstr "Kiểu kết nối: chứng nhận X.509" + +#~ msgid "CA: %s" +#~ msgstr "Nhà cầm quyền chứng nhận: %s" + +#~ msgid "Cert: %s" +#~ msgstr "Chứng nhận: %s" + +#~ msgid "Key: %s" +#~ msgstr "Khoá: %s" + +#~ msgid "Connection Type: Shared Key" +#~ msgstr "Kiểu kết nối: khoá chia sẻ" + +#~ msgid "Shared Key: %s" +#~ msgstr "Khoá chia sẻ: %s" + +#~ msgid "Remote IP: %s" +#~ msgstr "IP ở xa: %s" + +#~ msgid "Connection Type: Password" +#~ msgstr "Kiểu kết nối: mật khẩu" + +#~ msgid "Username: %s" +#~ msgstr "Tên người dùng: %s" + +#~ msgid "Connection Type: X.509 with Password Authentication" +#~ msgstr "Kiểu kết nối: X.509 và xác thực mật khẩu" + +#~ msgid "Remote: %s" +#~ msgstr "Ở xa: %s" + +#~ msgid "Device: %s" +#~ msgstr "Thiết bị: %s" + +#~ msgid "Protocol: %s" +#~ msgstr "Giao thức: %s" + +#~ msgid "TCP" +#~ msgstr "TCP" + +#~ msgid "UDP" +#~ msgstr "UDP" + +#~ msgid "Routes: %s" +#~ msgstr "Tuyến: %s" + +#~ msgid "Yes" +#~ msgstr "Có" + +#~ msgid "No" +#~ msgstr "Không" + +#~ msgid "TLS auth: %s %s" +#~ msgstr "Xác thực TLS: %s %s" + +#~ msgid "The connection details can be changed using the \"Edit\" button." +#~ msgstr "Chi tiết kết nối có thể được sửa đổi dùng nút « Sửa »." + +#~ msgid "Cannot import settings" +#~ msgstr "Không thể nhập thiết lập" + +#~ msgid "The VPN settings file '%s' does not contain valid data." +#~ msgstr "Tập tin thiết lập VPN « %s » không chứa dữ liệu hợp lệ." + +#~ msgid "Select file to import" +#~ msgstr "Chọn tập tin cần nhập vào" + +#~ msgid "Select CA to use" +#~ msgstr "Chọn nhà cầm quyền chứng nhận (CA) cần dùng" + +#~ msgid "Select certificate to use" +#~ msgstr "Chọn chứng nhận cần dùng" + +#~ msgid "Select key to use" +#~ msgstr "Chọn khoá cần dùng" + +#~ msgid "Select shared key to use" +#~ msgstr "Chọn khoá chia sẻ cần dùng" + +#~ msgid "Select TA to use" +#~ msgstr "Chọn TA cần dùng" + +#~ msgid "Save as..." +#~ msgstr "Lưu dạng..." + +#~ msgid "A file named \"%s\" already exists." +#~ msgstr "Một tập tin tên « %s » đã có." + +#~ msgid "Do you want to replace it with the one you are saving?" +#~ msgstr "Bạn có muốn thay thế nó bằng tập tin đang lưu không?" + +#~ msgid "Failed to export configuration" +#~ msgstr "Lỗi xuất cấu hình" + +#~ msgid "Failed to save file %s" +#~ msgstr "Lỗi lưu tập tin %s" + +#~ msgid "65536" +#~ msgstr "65536" + +#~ msgid "example: 172.16.0.0/16 10.11.12.0/24" +#~ msgstr "v.d.: 172.16.0.0/16 10.11.12.0/24" + +#~ msgid "C_A file:" +#~ msgstr "Tập tin nhà cầm _quyền chứng nhận:" + +#~ msgid "Connection na_me:" +#~ msgstr "Tên _kết nối:" + +#~ msgid "Import _Saved Configuration..." +#~ msgstr "Nhập cấu hình đã _lưu..." + +#~ msgid "" +#~ "Name used to identify the connection to the private network, e.g. " +#~ "\"Campus VPN\" or \"Corporate Network\"" +#~ msgstr "" +#~ "Tên dùng để nhận diện kết nối cho mạng riêng, v.d. « VPN đại học » hay « " +#~ "Mạng công ty »." + +#~ msgid "Network" +#~ msgstr "Mạng" + +#~ msgid "Only use _VPN connection for these addresses:" +#~ msgstr "Chỉ dùng kết nối _VPN cho những địa chỉ này:" + +#~ msgid "" +#~ "Please enter the information provided by your system administrator below. " +#~ "Do not enter your password here as you will be prompted when connecting." +#~ msgstr "" +#~ "Hãy gõ dưới đây thông tin được cung cấp bởi nhà quản trị hệ thống. Đừng " +#~ "gõ mật khẩu vào đây: bạn sẽ được nhắc gõ nó trong khi kết nối." + +#~ msgid "" +#~ "Please note that the file you import is not an OpenVPN configuration " +#~ "file. Ask your administrator for the file." +#~ msgstr "" +#~ "Ghi chú : tập tin nhập vào không phải là tập tin cấu hình OpenVPN. Hãy " +#~ "xin nhà quản trị hệ thống cung cấp tập tin đó." + +#~ msgid "Shared _key:" +#~ msgstr "_Khoá chia sẻ:" + +#~ msgid "TLS-Auth" +#~ msgstr "XácT-TLS" + +#~ msgid "Use TA_P device" +#~ msgstr "Dùng thiết bị TA_P" + +#~ msgid "Use _TLS auth:" +#~ msgstr "Dùng xác thực ĐTLS:" + +#~ msgid "Use cip_her:" +#~ msgstr "Dùng _mật mã:" + +#~ msgid "" +#~ "X.509 Certificates\n" +#~ "Pre-shared key\n" +#~ "Password Authentication\n" +#~ "X.509 with Password Authentication" +#~ msgstr "" +#~ "Chứng nhận X.509\n" +#~ "Khoá chia sẻ sẵn\n" +#~ "Xác thực bằng mật khẩu\n" +#~ "X.509 và xác thực bằng mật khẩu" + +#~ msgid "_0" +#~ msgstr "_0" + +#~ msgid "_1" +#~ msgstr "_1" + +#~ msgid "_Gateway address:" +#~ msgstr "Địa chỉ cổn_g ra:" + +#~ msgid "_Key:" +#~ msgstr "_Phím:" + +#~ msgid "_Local IP:" +#~ msgstr "IP cục _bộ :" + +#~ msgid "_none" +#~ msgstr "khô_ng có" diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..9d9fee9 --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,901 @@ +# Simplified Chinese translation to NetworkManger-openvpn +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the NetworkManger package. +# Funda Wang , 2004. +# Wei Mingzhi , 2009. +# Aron Xu , 2009. +# du baodao , 2010. +# Lele Long , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2012-02-16 19:47+0800\n" +"Last-Translator: chiachen \n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Language: zh_CN\n" +"X-Source-Language: C\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "验证 VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "密码:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "证书密码:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "验证 VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "证书密码(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "要访问虚拟专用网络“%s”,您必须进行身份验证。" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "选择您的个人证书..." + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "选择您的私钥..." + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "已保存" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "总是询问" + +#: ../properties/auth-helpers.c:301 +msgid "Not Required" +msgstr "可选" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "选择一个认证机构证书..." + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "选择一个 OpenVPN 静态密钥..." + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "无" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM 或者 PKCS#12 证书 (*.pem, *.crt, *.key, *.cer,*.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM 证书 (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN 静态密钥 (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "默认" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "RSA MD-4" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "可选" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "与 OpenVPN 服务器兼容。" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "证书(TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "密码" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "证书和密码(TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "静态密钥" + +#: ../properties/nm-openvpn.c:553 +#, fuzzy +msgid "could not create openvpn object" +msgstr "不能找到 openvpn 命令。" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +#, fuzzy +msgid "not a valid OpenVPN configuration file" +msgstr "没有 VPN 配置选项。" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "常规" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "网关(_G):" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "认证" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +msgid "_Show passwords" +msgstr "显示密码" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +msgid "Password for private key" +msgstr "私钥密码" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +msgid "Private Key Password:" +msgstr "私钥密码:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" +"本地个人 .pem 格式私钥。\n" +"config: key" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "私钥:" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" +"pem 格式的 CA 文件。\n" +"config: ca" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA 证书:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +msgid "User Certificate:" +msgstr "用户证书:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" +"本地个人 .pem 格式签名证书(经 CA 签名)\n" +"config: cert" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"当提示时,传递给 OpenVPN 的密码。\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +msgid "User name:" +msgstr "用户名:" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" +"当提示时,传递给 OpenVPN 的密码。\n" +"config: auth-user-pass" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"本地 VPN 端点的 IP 地址。\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:27 +msgid "Remote IP Address:" +msgstr "远程 IP 地址:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "本地 IP 地址:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" +"远程 VPN 端点的 IP 地址。\n" +"config: ifconfig " + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "密钥方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +msgid "Static Key:" +msgstr "静态密钥:" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" +"静态密钥加密模式(非TLS)预共享的文件。\n" +"config: static " + +#: ../properties/nm-openvpn-dialog.ui.h:35 +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"静态密钥加密模式(非TLS)方向。\n" +"如果启用密钥方向,它必须与 VPN 端使用的密钥方向相反。例如,VPN 端使用 " +"'1',此连接必须使用 '0'。如果您不确认您应该使用何值,请联系网络管理员。\n" +"config: static [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "类型:" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "选择认证模式。" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "高级(_V)..." + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN 高级选项" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "使用自定义网关端口(_O):" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" +"本地 TCP/UDP 端口号。\n" +"config: port" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "使用自定义重新协商间隔(_R):" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" +"重新谈判数据通道的键的等待时间(秒)。\n" +"config: reneg-sec" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "使用 L_ZO 压缩" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" +"使用快速 LZO 压缩。\n" +"config: comp-lzo" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "使用 _TCP 连接" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" +"使用TCP与远程主机通信。\n" +"config: proto tcp-client | udp" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +#, fuzzy +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" +"用 TAP 虚拟网络设备代替 TUN 设备。\n" +"config: dev tap | tun" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "使用自定义最大传输单元(MTU)(_T):" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" +"指定 TUN 设备的 MTU 值,并参考该值设置连接 MTU。\n" +"config: tun-mtu" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "使用自定义用户数据报段长度(_F):" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" +"启用这个最大规模的的内部数据报碎片。\n" +"config: fragment" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "限制隧道 TCP 最大段长度(MSS)" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" +"限制隧道 TCP 最大段长度(MSS)\n" +"config: mssfix" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "一般" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" +"加密算法加密的数据包。默认使用 BF-CBC(密码块链接模式中的 Blowfish)。\n" +"config: cipher" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" +"HMAC 认证包使用消息摘要算法。默认使用 SHA1。\n" +"config: auth" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "加密:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC 认证:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "安全性" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "主题匹配:" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" +"仅连接到证书符合给定主题的服务器\n" +"例子:/CN=myvpn.company.com" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" +"只接受来自使用 X509 名称或者为特定名称的主机。\n" +"config: tls-remote" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "使用附加 TLS 认证" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "添加额外的 HMAC 认证层。" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "密钥方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" +"在 TLS 控制通道上层添加额外的 HMAC 认证层,来防止 DoS 攻击。\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"静态密钥模式转向参数。\n" +"如果启用密钥方向,它必须与 VPN 端使用的密钥方向相反。例如,VPN 端使用 " +"'1',此连接必须使用 '0'。如果您不确认您应该使用何值,请联系网络管理员。\n" +"config: tls-auth [direction]" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "密钥文件:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +msgid "TLS Authentication" +msgstr "TLS 认证" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"代理类型:HTTP 或者 Socks。\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "代理类型:" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "如果您的组织要求使用代理服务器来访问互联网,请选择此选项" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "服务器地址:" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"连接到远程主机的代理地址。\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "端口:" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" +"连接到远程主机的代理端口。\n" +"config: http-proxy or socks-proxy" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +#, fuzzy +msgid "_Retry indefinitely when errors occur" +msgstr "发生错误时重新验证" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" +"代理错误重试。他模拟了一个 SIGUSR1 重置。\n" +"config: http-proxy-retry or socks-proxy-retry" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +msgid "Proxy _Username:" +msgstr "代理用户名:" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +msgid "Proxy Passwor_d:" +msgstr "代理密码:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "当提示时,传递给 OpenVPN 的 HTTP/Socks 代理用户名。" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "当提示时,传递给 OpenVPN 的 HTTP/Socks 代理密码。" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +msgid "_Show password" +msgstr "显示密码" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "代理" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "无效的地址 %s" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "无效的整数属性 %s 或者超过范围[%d -> %d]" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "无效的布尔属性 %s (不是yes或者no)" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "未处理的属性 %s 类型 %s" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "属性 %s 无效或不被支持" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "没有 VPN 配置选项。" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +#, fuzzy +msgid "A private key password is required." +msgstr "私钥密码:" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "不能找到 openvpn 命令。" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "无效的 HMAC 认证。" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "错误的连接类型。" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "无效的端口号 %s。" + +#: ../src/nm-openvpn-service.c:971 +#, fuzzy, c-format +msgid "Invalid proto '%s'." +msgstr "无效的代理类型 %s。" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "无效的代理类型 %s。" + +#: ../src/nm-openvpn-service.c:1065 +#, fuzzy, c-format +msgid "Invalid keysize '%s'." +msgstr "无效的分片大小 %s。" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "无效的重新握手秒数 %s。" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "无效的 TUN MTU 大小 %s。" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "无效的分片大小 %s。" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "缺少静态密钥模式所需的本地 IP 地址。" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "缺少静态密钥模式所需的远程 IP 地址。" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "未知的连接类型 %s。" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "无法处理请求,因为 VPN 连接设置是无效的。" + +#: ../src/nm-openvpn-service.c:1391 +#, fuzzy +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "无法处理请求,因为 VPN 连接设置是无效的。" + +#: ../src/nm-openvpn-service.c:1507 +#, fuzzy +msgid "Unhandled pending authentication." +msgstr "选择认证模式。" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "不要在 VPN 连接终止时退出" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "启用详细的调试日志记录(可能暴露密码)" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "nm-openvpn-service 为 NetworkManager 和 OpenVPN 提供集成。" + +#~ msgid "_Password:" +#~ msgstr "密码(_P):" + +#~ msgid "_Secondary Password:" +#~ msgstr "次要密码(_S):" + +#~ msgid "Sh_ow passwords" +#~ msgstr "显示密码(_O)" + +#~ msgid "Use a TA_P device" +#~ msgstr "便用 TA_P 设备" + +#~ msgid "" +#~ "Remote host name or IP address.\n" +#~ "config: remote" +#~ msgstr "" +#~ "远程主机名或 IP。\n" +#~ "config: remote" + +#~ msgid "No VPN secrets!" +#~ msgstr "没有 VPN 机密!" + +#~ msgid "Could not process the request because no username was provided." +#~ msgstr "无法处理请求,因为没有用户名。" diff --git a/po/zh_HK.po b/po/zh_HK.po new file mode 100644 index 0000000..62e2847 --- /dev/null +++ b/po/zh_HK.po @@ -0,0 +1,842 @@ +# Chinese (Hong Kong) translation of NetworkManager-openvpn. +# Copyright (C) 2007 Free Software Foundation, Inc. +# Chao-Hsiung Liao , 2007, 2009. +# Wei-Lun Chao , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn 0.8.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-01-25 19:37+0800\n" +"Last-Translator: Chao-Hsiung Liao \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "驗證 VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "密碼:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "證書密碼:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "驗證 VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "證書密碼(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "你需要驗證才能存取虛擬私人網絡「%s」。" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "選擇你的個人證書…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "選擇你的私密密碼匙…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "不需要" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "選擇一個核證機關的證書…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "選擇 OpenVPN 靜態密碼匙…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "無" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM 或 PKCS#12 證書 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM 證書 (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN 靜態密碼匙 (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "預設值" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "不需要" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "兼容於 OpenVPN 伺服器。" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "證書 (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "密碼" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "證書密碼 (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "靜態密碼匙" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "一般" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "驗證" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "密碼(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "選擇你的私密密碼匙…" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "證書密碼:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA 憑證:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "CA 憑證:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "使用者名稱(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "本地端 IP 位址:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "本地端 IP 位址:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "金鑰方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "靜態密碼匙" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"如果使用金鑰方向,在 VPN 對等端也同樣必須使用。舉例來說,如果對等端使用" +"「1」,這個連線必須使用「0」。如果您不確定要使用什麼數值,請連絡您的系統管理" +"員。" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "進階(_V)…" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN 進階選項" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "一般" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "加密器:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC 驗證:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "金鑰方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"如果使用金鑰方向,在 VPN 對等端也同樣必須使用。舉例來說,如果對等端使用" +"「1」,這個連線必須使用「0」。如果您不確定要使用什麼數值,請連絡您的系統管理" +"員。" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "金鑰檔案:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "HMAC 驗證:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "使用者名稱(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "密碼:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "密碼(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "第二組密碼(_S):" + +#~ msgid "_Domain:" +#~ msgstr "網域(_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "匿名連線(_A)" + +#~ msgid "Connect as _user:" +#~ msgstr "以使用者連線(_U):" + +#~ msgid "_Remember password for this session" +#~ msgstr "記住這個作業階段的密碼(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "將密碼儲存到密碼匙圈(_S)" diff --git a/po/zh_TW.po b/po/zh_TW.po new file mode 100644 index 0000000..18f0a6c --- /dev/null +++ b/po/zh_TW.po @@ -0,0 +1,842 @@ +# Chinese (Taiwan) translation of NetworkManager-openvpn. +# Copyright (C) 2007 Free Software Foundation, Inc. +# Chao-Hsiung Liao , 2007, 2009. +# Wei-Lun Chao , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: NetworkManager-openvpn 0.8.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-02-10 12:39+0100\n" +"PO-Revision-Date: 2011-01-25 17:31+0800\n" +"Last-Translator: Chao-Hsiung Liao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../auth-dialog/main.c:175 +#, fuzzy, c-format +msgid "Authenticate VPN %s" +msgstr "驗證 VPN" + +#: ../auth-dialog/main.c:182 ../properties/nm-openvpn-dialog.ui.h:21 +msgid "Password:" +msgstr "密碼:" + +#: ../auth-dialog/main.c:189 +msgid "Certificate password:" +msgstr "憑證密碼:" + +#: ../auth-dialog/main.c:223 +msgid "Authenticate VPN" +msgstr "驗證 VPN" + +#: ../auth-dialog/main.c:232 +msgid "Certificate pass_word:" +msgstr "憑證密碼(_W):" + +#: ../auth-dialog/main.c:464 +#, c-format +msgid "You need to authenticate to access the Virtual Private Network '%s'." +msgstr "您需要驗證才能存取虛擬私人網路「%s」。" + +#: ../nm-openvpn.desktop.in.h:1 +msgid "VPN Connection Manager (OpenVPN)" +msgstr "" + +#: ../nm-openvpn.desktop.in.h:2 +msgid "Add, Remove, and Edit VPN Connections" +msgstr "" + +#: ../properties/auth-helpers.c:180 +msgid "Choose your personal certificate..." +msgstr "選擇您的個人憑證…" + +#: ../properties/auth-helpers.c:198 +msgid "Choose your private key..." +msgstr "選擇您的私密金鑰…" + +#: ../properties/auth-helpers.c:288 +msgid "Saved" +msgstr "" + +#: ../properties/auth-helpers.c:296 +msgid "Always Ask" +msgstr "" + +#: ../properties/auth-helpers.c:301 +#, fuzzy +msgid "Not Required" +msgstr "不需要" + +#: ../properties/auth-helpers.c:391 +msgid "Choose a Certificate Authority certificate..." +msgstr "選擇一個憑證管理中心的憑證…" + +#: ../properties/auth-helpers.c:435 +msgid "Choose an OpenVPN static key..." +msgstr "選擇 OpenVPN 靜態金鑰…" + +#: ../properties/auth-helpers.c:459 ../properties/auth-helpers.c:1193 +#: ../properties/auth-helpers.c:1796 +msgid "None" +msgstr "無" + +#: ../properties/auth-helpers.c:916 +msgid "PEM or PKCS#12 certificates (*.pem, *.crt, *.key, *.cer, *.p12)" +msgstr "PEM 或 PKCS#12 憑證 (*.pem, *.crt, *.key, *.cer, *.p12)" + +#: ../properties/auth-helpers.c:917 +msgid "PEM certificates (*.pem, *.crt, *.key, *.cer)" +msgstr "PEM 憑證 (*.pem, *.crt, *.key, *.cer)" + +#: ../properties/auth-helpers.c:977 +msgid "OpenVPN Static Keys (*.key)" +msgstr "OpenVPN 靜態金鑰 (*.key)" + +#: ../properties/auth-helpers.c:1109 ../properties/auth-helpers.c:1185 +msgid "Default" +msgstr "預設值" + +#: ../properties/auth-helpers.c:1195 +msgid "RSA MD-4" +msgstr "" + +#: ../properties/auth-helpers.c:1197 +msgid "MD-5" +msgstr "MD-5" + +#: ../properties/auth-helpers.c:1199 +msgid "SHA-1" +msgstr "SHA-1" + +#: ../properties/auth-helpers.c:1201 +msgid "SHA-224" +msgstr "SHA-224" + +#: ../properties/auth-helpers.c:1203 +msgid "SHA-256" +msgstr "SHA-256" + +#: ../properties/auth-helpers.c:1205 +msgid "SHA-384" +msgstr "SHA-384" + +#: ../properties/auth-helpers.c:1207 +msgid "SHA-512" +msgstr "SHA-512" + +#: ../properties/auth-helpers.c:1209 +msgid "RIPEMD-160" +msgstr "RIPEMD-160" + +#: ../properties/auth-helpers.c:1260 +msgid "Server" +msgstr "" + +#: ../properties/auth-helpers.c:1265 +msgid "Client" +msgstr "" + +#: ../properties/auth-helpers.c:1518 ../properties/nm-openvpn-dialog.ui.h:41 +msgid "Not required" +msgstr "不需要" + +#: ../properties/auth-helpers.c:1520 +msgid "HTTP" +msgstr "HTTP" + +#: ../properties/auth-helpers.c:1522 +msgid "SOCKS" +msgstr "SOCKS" + +#: ../properties/auth-helpers.c:1699 +msgid "TUN" +msgstr "" + +#: ../properties/auth-helpers.c:1701 +msgid "TAP" +msgstr "" + +#. interface name is max 15 chars +#: ../properties/auth-helpers.c:1708 +msgid "(automatic)" +msgstr "" + +#: ../properties/import-export.c:686 +msgid "The file to import wasn't a valid OpenVPN client configuration." +msgstr "" + +#: ../properties/import-export.c:693 +msgid "The file to import wasn't a valid OpenVPN configure (no remote)." +msgstr "" + +#: ../properties/import-export.c:803 +msgid "could not open file for writing" +msgstr "" + +#: ../properties/import-export.c:811 +msgid "connection was incomplete (missing gateway)" +msgstr "" + +#: ../properties/nm-openvpn.c:52 +msgid "OpenVPN" +msgstr "OpenVPN" + +#: ../properties/nm-openvpn.c:53 +msgid "Compatible with the OpenVPN server." +msgstr "相容於 OpenVPN 伺服器。" + +#: ../properties/nm-openvpn.c:369 +msgid "Certificates (TLS)" +msgstr "憑證 (TLS)" + +#: ../properties/nm-openvpn.c:380 +msgid "Password" +msgstr "密碼" + +#: ../properties/nm-openvpn.c:393 +msgid "Password with Certificates (TLS)" +msgstr "憑證密碼 (TLS)" + +#: ../properties/nm-openvpn.c:405 +msgid "Static Key" +msgstr "靜態金鑰" + +#: ../properties/nm-openvpn.c:553 +msgid "could not create openvpn object" +msgstr "" + +#: ../properties/nm-openvpn.c:579 +msgid "could not load UI widget" +msgstr "" + +#: ../properties/nm-openvpn.c:670 +msgid "unknown OpenVPN file extension" +msgstr "" + +#: ../properties/nm-openvpn.c:698 +msgid "not a valid OpenVPN configuration file" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:1 +msgid " " +msgstr " " + +#: ../properties/nm-openvpn-dialog.ui.h:2 +msgid "General" +msgstr "一般" + +#: ../properties/nm-openvpn-dialog.ui.h:3 +msgid "_Gateway:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:4 +msgid "" +"Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:" +"tcp). You can specify multiple hosts for redundancy (use commas or spaces as " +"delimiters).\n" +"config: remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:6 +msgid "Authentication" +msgstr "驗證" + +#: ../properties/nm-openvpn-dialog.ui.h:7 +#, fuzzy +msgid "_Show passwords" +msgstr "密碼(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:8 +#, fuzzy +msgid "Password for private key" +msgstr "選擇您的私密金鑰…" + +#: ../properties/nm-openvpn-dialog.ui.h:9 +#, fuzzy +msgid "Private Key Password:" +msgstr "憑證密碼:" + +#: ../properties/nm-openvpn-dialog.ui.h:10 +msgid "" +"Local peer's private key in .pem format.\n" +"config: key" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:12 +msgid "Private Key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:13 +msgid "" +"Certificate authority (CA) file in .pem format.\n" +"config: ca" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:15 +msgid "CA Certificate:" +msgstr "CA 憑證:" + +#: ../properties/nm-openvpn-dialog.ui.h:16 +#, fuzzy +msgid "User Certificate:" +msgstr "CA 憑證:" + +#: ../properties/nm-openvpn-dialog.ui.h:17 +msgid "" +"Local peer's signed certificate in .pem format (signed by CA of CA " +"Certificate).\n" +"config: cert" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:19 +msgid "" +"Password passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:22 +#, fuzzy +msgid "User name:" +msgstr "使用者名稱(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:23 +msgid "" +"Username passed to OpenVPN when prompted for it.\n" +"config: auth-user-pass" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:25 +msgid "" +"IP address of the local VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:27 +#, fuzzy +msgid "Remote IP Address:" +msgstr "本地端 IP 位址:" + +#: ../properties/nm-openvpn-dialog.ui.h:28 +msgid "Local IP Address:" +msgstr "本地端 IP 位址:" + +#: ../properties/nm-openvpn-dialog.ui.h:29 +msgid "" +"IP address of the remote VPN endpoint.\n" +"config: ifconfig " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:31 +#, fuzzy +msgid "Key Direction:" +msgstr "金鑰方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:32 +#, fuzzy +msgid "Static Key:" +msgstr "靜態金鑰" + +#: ../properties/nm-openvpn-dialog.ui.h:33 +msgid "" +"Pre-shared file for Static Key encryption mode (non-TLS).\n" +"config: static " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:35 +#, fuzzy +msgid "" +"Direction for Static Key encryption mode (non-TLS).\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: static [direction]" +msgstr "" +"如果使用金鑰方向,在 VPN 對等端也同樣必須使用。舉例來說,如果對等端使用" +"「1」,這個連線必須使用「0」。如果您不確定要使用什麼數值,請連絡您的系統管理" +"員。" + +#: ../properties/nm-openvpn-dialog.ui.h:38 +msgid "Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:39 +msgid "Select an authentication mode." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:40 +msgid "Ad_vanced..." +msgstr "進階(_V)…" + +#: ../properties/nm-openvpn-dialog.ui.h:42 +msgid "OpenVPN Advanced Options" +msgstr "OpenVPN 進階選項" + +#: ../properties/nm-openvpn-dialog.ui.h:43 +msgid "Use custom gateway p_ort:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:44 +msgid "" +"TCP/UDP port number for local peer.\n" +"config: port" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:46 +msgid "Use custom _renegotiation interval:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:47 +msgid "" +"Renegotiate data channel key after the specified number of seconds.\n" +"config: reneg-sec" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:49 +msgid "Use L_ZO data compression" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:50 +msgid "" +"Use fast LZO compression.\n" +"config: comp-lzo" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:52 +msgid "Use a _TCP connection" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:53 +msgid "" +"Use TCP for communicating with remote host.\n" +"config: proto tcp-client | udp" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:55 +msgid "Set virtual _device type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:56 +msgid "Explicitly set virtual device type and name (TUN/TAP)." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:57 +msgid "" +"Explicitly set virtual device type (TUN/TAP).\n" +"config: dev-type tun | tap" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:59 +msgid " and _name:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:60 +msgid "" +"Use custom name for TUN/TAP virtual device (instead of default \"tun\" or " +"\"tap\").\n" +"config: dev " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:62 +msgid "Use custom tunnel Maximum Transmission _Unit (MTU):" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:63 +msgid "" +"Take the TUN device MTU to be the specified value and derive the link MTU " +"from it.\n" +"config: tun-mtu" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:65 +msgid "Use custom UDP _fragment size:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:66 +msgid "" +"Enable internal datagram fragmentation with this maximum size.\n" +"config: fragment" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:68 +msgid "Restrict tunnel TCP Maximum _Segment Size (MSS)" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:69 +msgid "" +"Restrict tunnel TCP MSS.\n" +"config: mssfix" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:71 +msgid "Rando_mize remote hosts" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:72 +msgid "" +"Randomize the order of gateways list (remote) as a kind of basic load-" +"balancing measure.\n" +"config: remote-random" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:74 +msgid "General" +msgstr "一般" + +#: ../properties/nm-openvpn-dialog.ui.h:75 +msgid "" +"Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in " +"Cipher Block Chaining mode).\n" +"config: cipher" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:77 +msgid "Use custom _size of cipher key:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:78 +msgid "" +"Set cipher key size to a custom value. If unspecified, it defaults to cipher-" +"specific size.\n" +"config: keysize " +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:80 +msgid "" +"Authenticate packets with HMAC using message digest algorithm. The default " +"is SHA1.\n" +"config: auth" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:82 +msgid "Ci_pher:" +msgstr "加密器:" + +#: ../properties/nm-openvpn-dialog.ui.h:83 +msgid "_HMAC Authentication:" +msgstr "HMAC 驗證:" + +#: ../properties/nm-openvpn-dialog.ui.h:84 +msgid "Security" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:85 +msgid "_Subject Match:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:86 +msgid "" +"Connect only to servers whose certificate matches the given subject.\n" +"Example: /CN=myvpn.company.com" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:88 +msgid "" +"Accept connections only from a host with X509 name or common name equal to " +"the specified one.\n" +"config: tls-remote" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:90 +msgid "_Verify peer (server) certificate usage signature" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:91 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:92 +msgid "_Remote peer certificate TLS type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:93 +msgid "" +"Require that peer certificate was signed with an explicit key usage and " +"extended key usage based on RFC3280 TLS rules.\n" +"config: remote-cert-tls client|server" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:95 +msgid "Use additional _TLS authentication" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:96 +msgid "Add an additional layer of HMAC authentication." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:97 +msgid "Key _Direction:" +msgstr "金鑰方向:" + +#: ../properties/nm-openvpn-dialog.ui.h:98 +msgid "" +"Add an additional layer of HMAC authentication on top of the TLS control " +"channel to protect against DoS attacks.\n" +"config: tls-auth [direction]" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:100 +#, fuzzy +msgid "" +"Direction parameter for static key mode.\n" +"If key direction is used, it must be the opposite of that used on the VPN " +"peer. For example, if the peer uses '1', this connection must use '0'. If " +"you are unsure what value to use, contact your system administrator.\n" +"config: tls-auth [direction]" +msgstr "" +"如果使用金鑰方向,在 VPN 對等端也同樣必須使用。舉例來說,如果對等端使用" +"「1」,這個連線必須使用「0」。如果您不確定要使用什麼數值,請連絡您的系統管理" +"員。" + +#: ../properties/nm-openvpn-dialog.ui.h:103 +msgid "Key _File:" +msgstr "金鑰檔案:" + +#: ../properties/nm-openvpn-dialog.ui.h:104 +#, fuzzy +msgid "TLS Authentication" +msgstr "HMAC 驗證:" + +#: ../properties/nm-openvpn-dialog.ui.h:105 +msgid "" +"Proxy type: HTTP or Socks.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:107 +msgid "Proxy _Type:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:108 +msgid "" +"Select this option if your organization requires the use of a proxy " +"server to access the Internet." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:109 +msgid "Server _Address:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:110 +msgid "" +"Connect to remote host through a proxy with this address.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:112 +msgid "_Port:" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:113 +msgid "" +"Connect to remote host through a proxy with this port.\n" +"config: http-proxy or socks-proxy" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:115 +msgid "_Retry indefinitely when errors occur" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:116 +msgid "" +"Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset.\n" +"config: http-proxy-retry or socks-proxy-retry" +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:118 +#, fuzzy +msgid "Proxy _Username:" +msgstr "使用者名稱(_U):" + +#: ../properties/nm-openvpn-dialog.ui.h:119 +#, fuzzy +msgid "Proxy Passwor_d:" +msgstr "密碼:" + +#: ../properties/nm-openvpn-dialog.ui.h:120 +msgid "HTTP/Socks proxy username passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:121 +msgid "HTTP/Socks proxy password passed to OpenVPN when prompted for it." +msgstr "" + +#: ../properties/nm-openvpn-dialog.ui.h:122 +#, fuzzy +msgid "_Show password" +msgstr "密碼(_P):" + +#: ../properties/nm-openvpn-dialog.ui.h:123 +msgid "Proxies" +msgstr "" + +#: ../src/nm-openvpn-service.c:204 +#, c-format +msgid "invalid address '%s'" +msgstr "" + +#: ../src/nm-openvpn-service.c:216 +#, c-format +msgid "invalid integer property '%s' or out of range [%d -> %d]" +msgstr "" + +#. Translators: keep "yes" and "no" untranslated! +#: ../src/nm-openvpn-service.c:227 +#, c-format +msgid "invalid boolean property '%s' (not yes or no)" +msgstr "" + +#: ../src/nm-openvpn-service.c:234 +#, c-format +msgid "unhandled property '%s' type %s" +msgstr "" + +#: ../src/nm-openvpn-service.c:245 +#, c-format +msgid "property '%s' invalid or not supported" +msgstr "" + +#: ../src/nm-openvpn-service.c:261 +msgid "No VPN configuration options." +msgstr "" + +#: ../src/nm-openvpn-service.c:430 +msgid "A username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:434 +msgid "A password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:437 +msgid "A username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:457 +msgid "A private key password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:470 +msgid "An HTTP Proxy username is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:474 +msgid "An HTTP Proxy password is required." +msgstr "" + +#: ../src/nm-openvpn-service.c:477 +msgid "An HTTP Proxy username and password are required." +msgstr "" + +#: ../src/nm-openvpn-service.c:891 +msgid "Could not find the openvpn binary." +msgstr "" + +#: ../src/nm-openvpn-service.c:901 +msgid "Invalid HMAC auth." +msgstr "" + +#: ../src/nm-openvpn-service.c:911 ../src/nm-openvpn-service.c:1468 +msgid "Invalid connection type." +msgstr "" + +#: ../src/nm-openvpn-service.c:946 ../src/nm-openvpn-service.c:956 +#, c-format +msgid "Invalid port number '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:971 +#, c-format +msgid "Invalid proto '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1012 +#, c-format +msgid "Invalid proxy type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1065 +#, c-format +msgid "Invalid keysize '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1112 +#, c-format +msgid "Invalid reneg seconds '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1136 +#, c-format +msgid "Invalid TUN MTU size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1151 +#, c-format +msgid "Invalid fragment size '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1227 +msgid "Missing required local IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1239 +msgid "Missing required remote IP address for static key mode." +msgstr "" + +#: ../src/nm-openvpn-service.c:1264 +#, c-format +msgid "Unknown connection type '%s'." +msgstr "" + +#: ../src/nm-openvpn-service.c:1382 ../src/nm-openvpn-service.c:1459 +#: ../src/nm-openvpn-service.c:1493 +msgid "" +"Could not process the request because the VPN connection settings were " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1391 +msgid "" +"Could not process the request because the openvpn connection type was " +"invalid." +msgstr "" + +#: ../src/nm-openvpn-service.c:1507 +msgid "Unhandled pending authentication." +msgstr "" + +#: ../src/nm-openvpn-service.c:1648 +msgid "Don't quit when VPN connection terminates" +msgstr "" + +#: ../src/nm-openvpn-service.c:1649 +msgid "Enable verbose debug logging (may expose passwords)" +msgstr "" + +#: ../src/nm-openvpn-service.c:1672 +msgid "" +"nm-openvpn-service provides integrated OpenVPN capability to NetworkManager." +msgstr "" + +#~ msgid "_Secondary Password:" +#~ msgstr "第二組密碼(_S):" + +#~ msgid "_Domain:" +#~ msgstr "網域(_D):" + +#~ msgid "Connect _anonymously" +#~ msgstr "匿名連線(_A)" + +#~ msgid "Connect as _user:" +#~ msgstr "以使用者連線(_U):" + +#~ msgid "_Remember password for this session" +#~ msgstr "記住這個作業階段的密碼(_R)" + +#~ msgid "_Save password in keyring" +#~ msgstr "將密碼儲存到鑰匙圈(_S)" diff --git a/properties/auth-helpers.c b/properties/auth-helpers.c new file mode 100644 index 0000000..16ff6e5 --- /dev/null +++ b/properties/auth-helpers.c @@ -0,0 +1,2177 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * + * Copyright (C) 2008 - 2010 Dan Williams, + * Copyright (C) 2008 - 2012 Red Hat, Inc. + * Copyright (C) 2008 Tambet Ingo, + * + * 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. + * + **************************************************************************/ + +#include "nm-default.h" + +#include "auth-helpers.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef NM_VPN_OLD +#include +#else +#include +#endif + +#include "utils.h" +#include "nm-utils/nm-shared-utils.h" + +#define BLOCK_HANDLER_ID "block-handler-id" + +/*****************************************************************************/ + +static const char *comp_lzo_values[] = { + "adaptive", + "yes", + "no-by-default", +}; + +static const char * +comp_lzo_values_conf_coerce (const char *value_conf) +{ + if (!value_conf || nm_streq (value_conf, "no")) + return NULL; + if (nm_streq (value_conf, "yes")) + return "yes"; + if (nm_streq (value_conf, "no-by-default")) + return "no-by-default"; + return "adaptive"; +} + +static const char * +comp_lzo_values_conf_to_display (const char *value_conf) +{ + if (nm_streq (value_conf, "yes")) + return "yes"; + if (nm_streq (value_conf, "no-by-default")) + return "no"; + if (nm_streq (value_conf, "adaptive")) + return "adaptive"; + g_return_val_if_reached ("adaptive"); +} + +/*****************************************************************************/ + +/* From gnome-control-center/panels/network/connection-editor/ui-helpers.c */ + +static void +widget_set_error (GtkWidget *widget) +{ + g_return_if_fail (GTK_IS_WIDGET (widget)); + + gtk_style_context_add_class (gtk_widget_get_style_context (widget), "error"); +} + +static void +widget_unset_error (GtkWidget *widget) +{ + g_return_if_fail (GTK_IS_WIDGET (widget)); + + gtk_style_context_remove_class (gtk_widget_get_style_context (widget), "error"); +} + + +typedef struct { + GtkWidget *widget1; + GtkWidget *widget2; +} TlsChooserSignalData; + +static void +tls_cert_changed_cb (NMACertChooser *this, gpointer user_data) +{ + NMACertChooser *other = user_data; + NMSetting8021xCKScheme scheme; + char *this_cert, *other_cert; + char *this_key, *other_key; + + other_key = nma_cert_chooser_get_key (other, &scheme); + this_key = nma_cert_chooser_get_key (this, &scheme); + other_cert = nma_cert_chooser_get_cert (other, &scheme); + this_cert = nma_cert_chooser_get_cert (this, &scheme); + + if ( scheme == NM_SETTING_802_1X_CK_SCHEME_PATH + && is_pkcs12 (this_cert)) { + if (!this_key) + nma_cert_chooser_set_key (this, this_cert, NM_SETTING_802_1X_CK_SCHEME_PATH); + if (!other_cert) { + nma_cert_chooser_set_cert (other, this_cert, NM_SETTING_802_1X_CK_SCHEME_PATH); + if (!other_key) + nma_cert_chooser_set_key (other, this_cert, NM_SETTING_802_1X_CK_SCHEME_PATH); + } + } + + g_free (this_cert); + g_free (other_cert); + g_free (this_key); + g_free (other_key); +} + +static void +tls_setup (GtkBuilder *builder, + NMSettingVpn *s_vpn, + const char *prefix, + NMACertChooser *ca_chooser, + ChangedCallback changed_cb, + gpointer user_data) +{ + NMACertChooser *cert; + const char *value; + char *tmp; + + tmp = g_strdup_printf ("%s_user_cert", prefix); + cert = NMA_CERT_CHOOSER (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + + nma_cert_chooser_add_to_size_group (cert, GTK_SIZE_GROUP (gtk_builder_get_object (builder, "labels"))); + g_signal_connect (G_OBJECT (cert), "changed", G_CALLBACK (changed_cb), user_data); + + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CERT); + if (value && strlen (value)) + nma_cert_chooser_set_cert (cert, value, NM_SETTING_802_1X_CK_SCHEME_PATH); + + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + if (value && strlen (value)) + nma_cert_chooser_set_key (cert, value, NM_SETTING_802_1X_CK_SCHEME_PATH); + value = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS); + if (value) + nma_cert_chooser_set_key_password (cert, value); + } + + nma_cert_chooser_setup_key_password_storage (cert, 0, (NMSetting *) s_vpn, + NM_OPENVPN_KEY_CERTPASS, TRUE, FALSE); + + /* Link choosers to the PKCS#12 changer callback */ + g_signal_connect_object (ca_chooser, "changed", G_CALLBACK (tls_cert_changed_cb), cert, 0); + g_signal_connect_object (cert, "changed", G_CALLBACK (tls_cert_changed_cb), ca_chooser, 0); +} + +static void +pw_setup (GtkBuilder *builder, + NMSettingVpn *s_vpn, + const char *prefix, + ChangedCallback changed_cb, + gpointer user_data) +{ + GtkWidget *widget; + const char *value; + char *tmp; + + tmp = g_strdup_printf ("%s_username_entry", prefix); + widget = GTK_WIDGET (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_USERNAME); + if (value && strlen (value)) + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (changed_cb), user_data); + + /* Fill in the user password */ + tmp = g_strdup_printf ("%s_password_entry", prefix); + widget = GTK_WIDGET (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + g_signal_connect (widget, "changed", G_CALLBACK (changed_cb), user_data); + + if (s_vpn) { + value = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD); + if (value) + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + + nma_utils_setup_password_storage (widget, 0, (NMSetting *) s_vpn, NM_OPENVPN_KEY_PASSWORD, + TRUE, FALSE); +} + +void +tls_pw_init_auth_widget (GtkBuilder *builder, + NMSettingVpn *s_vpn, + const char *contype, + const char *prefix, + ChangedCallback changed_cb, + gpointer user_data) +{ + NMACertChooser *ca; + const char *value; + char *tmp; + gboolean tls = FALSE, pw = FALSE; + + g_return_if_fail (builder != NULL); + g_return_if_fail (changed_cb != NULL); + g_return_if_fail (prefix != NULL); + + tmp = g_strdup_printf ("%s_ca_cert", prefix); + ca = NMA_CERT_CHOOSER (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + nma_cert_chooser_add_to_size_group (ca, GTK_SIZE_GROUP (gtk_builder_get_object (builder, "labels"))); + + /* Three major connection types here: TLS-only, PW-only, and TLS + PW */ + if (!strcmp (contype, NM_OPENVPN_CONTYPE_TLS) || !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + tls = TRUE; + if (!strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD) || !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + pw = TRUE; + + g_signal_connect (ca, "changed", G_CALLBACK (changed_cb), user_data); + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CA); + if (value && strlen (value)) + nma_cert_chooser_set_cert (ca, value, NM_SETTING_802_1X_CK_SCHEME_PATH); + } + + /* Set up the rest of the options */ + if (tls) + tls_setup (builder, s_vpn, prefix, ca, changed_cb, user_data); + if (pw) + pw_setup (builder, s_vpn, prefix, changed_cb, user_data); +} + +#define SK_DIR_COL_NAME 0 +#define SK_DIR_COL_NUM 1 + +void +sk_init_auth_widget (GtkBuilder *builder, + NMSettingVpn *s_vpn, + ChangedCallback changed_cb, + gpointer user_data) +{ + GtkWidget *widget; + const char *value = NULL; + GtkListStore *store; + GtkTreeIter iter; + gint active = -1; + gint direction = -1; + GtkFileFilter *filter; + + g_return_if_fail (builder != NULL); + g_return_if_fail (changed_cb != NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_key_chooser")); + filter = sk_file_chooser_filter_new (); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), filter); + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), TRUE); + gtk_file_chooser_button_set_title (GTK_FILE_CHOOSER_BUTTON (widget), + _("Choose an OpenVPN static key…")); + g_signal_connect (G_OBJECT (widget), "selection-changed", G_CALLBACK (changed_cb), user_data); + + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY); + if (value && strlen (value)) + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), value); + } + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); + + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION); + if (value && strlen (value)) { + long int tmp; + + errno = 0; + tmp = strtol (value, NULL, 10); + if (errno == 0 && (tmp == 0 || tmp == 1)) + direction = (guint32) tmp; + } + } + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, SK_DIR_COL_NAME, _("None"), SK_DIR_COL_NUM, -1, -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, SK_DIR_COL_NAME, "0", SK_DIR_COL_NUM, 0, -1); + if (direction == 0) + active = 1; + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, SK_DIR_COL_NAME, "1", SK_DIR_COL_NUM, 1, -1); + if (direction == 1) + active = 2; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_direction_combo")); + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), active < 0 ? 0 : active); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_local_address_entry")); + g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (changed_cb), user_data); + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP); + if (value && strlen (value)) + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_remote_address_entry")); + g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (changed_cb), user_data); + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP); + if (value && strlen (value)) + gtk_entry_set_text (GTK_ENTRY (widget), value); + } +} + +static gboolean +validate_cert_chooser (GtkBuilder *builder, const char *name, GError **error) +{ + NMACertChooser *chooser; + + chooser = NMA_CERT_CHOOSER (gtk_builder_get_object (builder, name)); + return nma_cert_chooser_validate (chooser, error); +} + +static gboolean +validate_tls (GtkBuilder *builder, const char *prefix, GError **error) +{ + char *tmp; + gboolean valid, encrypted = FALSE; + NMACertChooser *user_cert; + NMSettingSecretFlags pw_flags; + gboolean secrets_required = TRUE; + NMSetting8021xCKScheme scheme; + GError *local = NULL; + + tmp = g_strdup_printf ("%s_ca_cert", prefix); + valid = validate_cert_chooser (builder, tmp, &local); + g_free (tmp); + if (!valid) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + "%s: %s", NM_OPENVPN_KEY_CA, local->message); + g_error_free (local); + return FALSE; + } + + tmp = g_strdup_printf ("%s_user_cert", prefix); + user_cert = NMA_CERT_CHOOSER (gtk_builder_get_object (builder, tmp)); + valid = validate_cert_chooser (builder, tmp, &local); + g_free (tmp); + if (!valid) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + "%s: %s", NM_OPENVPN_KEY_CERT, local->message); + g_error_free (local); + return FALSE; + } + + /* Encrypted certificates require a password */ + tmp = nma_cert_chooser_get_cert (user_cert, &scheme); + encrypted = is_encrypted (tmp); + g_free (tmp); + + pw_flags = nma_cert_chooser_get_key_password_flags (user_cert); + if ( pw_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED + || pw_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) + secrets_required = FALSE; + + if (encrypted && secrets_required) { + if (!nma_cert_chooser_get_key_password (user_cert)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_CERTPASS); + return FALSE; + } + } + + return TRUE; +} + +gboolean +auth_widget_check_validity (GtkBuilder *builder, const char *contype, GError **error) +{ + GtkWidget *widget; + const char *str; + char *filename; + GError *local = NULL; + + if (!strcmp (contype, NM_OPENVPN_CONTYPE_TLS)) { + if (!validate_tls (builder, "tls", error)) + return FALSE; + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + if (!validate_tls (builder, "pw_tls", error)) + return FALSE; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "pw_tls_username_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (!str || !strlen (str)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_USERNAME); + return FALSE; + } + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD)) { + if (!validate_cert_chooser (builder, "pw_ca_cert", &local)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + "%s: %s", NM_OPENVPN_KEY_CA, local->message); + g_error_free (local); + return FALSE; + } + widget = GTK_WIDGET (gtk_builder_get_object (builder, "pw_username_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (!str || !strlen (str)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_USERNAME); + return FALSE; + } + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_STATIC_KEY)) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_key_chooser")); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (!filename || !filename[0]) { + g_free (filename); + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_STATIC_KEY); + return FALSE; + } + g_free (filename); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_local_address_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (!str || !strlen (str)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_LOCAL_IP); + return FALSE; + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_remote_address_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (!str || !strlen (str)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_REMOTE_IP); + return FALSE; + } + } else + g_assert_not_reached (); + + return TRUE; +} + +static void +update_from_cert_chooser (GtkBuilder *builder, + const char *cert_prop, + const char *key_prop, + const char *key_pass_prop, + const char *prefix, + const char *widget_name, + NMSettingVpn *s_vpn) +{ + NMSetting8021xCKScheme scheme; + NMACertChooser *cert_chooser; + NMSettingSecretFlags pw_flags; + char *tmp; + const char *password; + + g_return_if_fail (builder != NULL); + g_return_if_fail (cert_prop != NULL); + g_return_if_fail (prefix != NULL); + g_return_if_fail (widget_name != NULL); + g_return_if_fail (s_vpn != NULL); + + tmp = g_strdup_printf ("%s_%s", prefix, widget_name); + cert_chooser = NMA_CERT_CHOOSER (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + + tmp = nma_cert_chooser_get_cert (cert_chooser, &scheme); + if (tmp && strlen (tmp)) + nm_setting_vpn_add_data_item (s_vpn, cert_prop, tmp); + g_free (tmp); + + if (key_prop) { + g_return_if_fail (key_pass_prop != NULL); + + tmp = nma_cert_chooser_get_key (cert_chooser, &scheme); + if (tmp && strlen (tmp)) + nm_setting_vpn_add_data_item (s_vpn, key_prop, tmp); + g_free (tmp); + + password = nma_cert_chooser_get_key_password (cert_chooser); + if (password && strlen (password)) + nm_setting_vpn_add_secret (s_vpn, key_pass_prop, password); + + pw_flags = nma_cert_chooser_get_key_password_flags (cert_chooser); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), key_pass_prop, pw_flags, NULL); + } +} + +static void +update_tls (GtkBuilder *builder, const char *prefix, NMSettingVpn *s_vpn) +{ + update_from_cert_chooser (builder, + NM_OPENVPN_KEY_CA, + NULL, + NULL, + prefix, "ca_cert", s_vpn); + + update_from_cert_chooser (builder, + NM_OPENVPN_KEY_CERT, + NM_OPENVPN_KEY_KEY, + NM_OPENVPN_KEY_CERTPASS, + prefix, "user_cert", s_vpn); +} + +static void +update_pw (GtkBuilder *builder, const char *prefix, NMSettingVpn *s_vpn) +{ + GtkWidget *widget; + NMSettingSecretFlags pw_flags; + char *tmp; + const char *str; + + g_return_if_fail (builder != NULL); + g_return_if_fail (prefix != NULL); + g_return_if_fail (s_vpn != NULL); + + tmp = g_strdup_printf ("%s_username_entry", prefix); + widget = GTK_WIDGET (gtk_builder_get_object (builder, tmp)); + g_free (tmp); + + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && strlen (str)) + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_USERNAME, str); + + /* Password */ + tmp = g_strdup_printf ("%s_password_entry", prefix); + widget = (GtkWidget *) gtk_builder_get_object (builder, tmp); + g_assert (widget); + g_free (tmp); + + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && strlen (str)) + nm_setting_vpn_add_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, str); + + /* Update password flags */ + pw_flags = nma_utils_menu_to_secret_flags (widget); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENVPN_KEY_PASSWORD, pw_flags, NULL); +} + +gboolean +auth_widget_update_connection (GtkBuilder *builder, + const char *contype, + NMSettingVpn *s_vpn) +{ + GtkTreeModel *model; + GtkTreeIter iter; + GtkWidget *widget; + const char *str; + char *filename; + + if (!strcmp (contype, NM_OPENVPN_CONTYPE_TLS)) { + update_tls (builder, "tls", s_vpn); + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD)) { + update_from_cert_chooser (builder, NM_OPENVPN_KEY_CA, NULL, NULL, + "pw", "ca_cert", s_vpn); + update_pw (builder, "pw", s_vpn); + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + update_tls (builder, "pw_tls", s_vpn); + update_pw (builder, "pw_tls", s_vpn); + } else if (!strcmp (contype, NM_OPENVPN_CONTYPE_STATIC_KEY)) { + /* Update static key */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_key_chooser")); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (filename && strlen (filename)) + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, filename); + g_free (filename); + + /* Update direction */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_direction_combo")); + g_assert (widget); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + int direction = -1; + + gtk_tree_model_get (model, &iter, SK_DIR_COL_NUM, &direction, -1); + if (direction > -1) { + char *tmp = g_strdup_printf ("%d", direction); + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, tmp); + g_free (tmp); + } + } + + /* Update local address */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_local_address_entry")); + g_assert (widget); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && strlen (str)) + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, str); + + /* Update remote address */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "sk_remote_address_entry")); + g_assert (widget); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && strlen (str)) + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, str); + } else + g_assert_not_reached (); + + return TRUE; +} + +static const char * +find_tag (const char *tag, const char *buf, gsize len) +{ + gsize i, taglen; + + taglen = strlen (tag); + if (len < taglen) + return NULL; + + for (i = 0; i < len - taglen + 1; i++) { + if (memcmp (buf + i, tag, taglen) == 0) + return buf + i; + } + return NULL; +} + +static const char *sk_key_begin = "-----BEGIN OpenVPN Static key V1-----"; + +static gboolean +sk_default_filter (const GtkFileFilterInfo *filter_info, gpointer data) +{ + int fd; + unsigned char buffer[1024]; + ssize_t bytes_read; + gboolean show = FALSE; + char *p; + char *ext; + + if (!filter_info->filename) + return FALSE; + + p = strrchr (filter_info->filename, '.'); + if (!p) + return FALSE; + + ext = g_ascii_strdown (p, -1); + if (!ext) + return FALSE; + if (!g_str_has_suffix (ext, ".key")) { + g_free (ext); + return FALSE; + } + g_free (ext); + + fd = open (filter_info->filename, O_RDONLY); + if (fd < 0) + return FALSE; + + bytes_read = read (fd, buffer, sizeof (buffer) - 1); + if (bytes_read < 400) /* needs to be lower? */ + goto out; + buffer[bytes_read] = '\0'; + + /* Check for PEM signatures */ + if (find_tag (sk_key_begin, (const char *) buffer, bytes_read)) { + show = TRUE; + goto out; + } + +out: + close (fd); + return show; +} + +GtkFileFilter * +sk_file_chooser_filter_new (void) +{ + GtkFileFilter *filter; + + filter = gtk_file_filter_new (); + gtk_file_filter_add_custom (filter, GTK_FILE_FILTER_FILENAME, sk_default_filter, NULL, NULL); + gtk_file_filter_set_name (filter, _("OpenVPN Static Keys (*.key)")); + return filter; +} + +static const char *advanced_keys[] = { + NM_OPENVPN_KEY_PORT, + NM_OPENVPN_KEY_COMP_LZO, + NM_OPENVPN_KEY_MSSFIX, + NM_OPENVPN_KEY_FLOAT, + NM_OPENVPN_KEY_TUNNEL_MTU, + NM_OPENVPN_KEY_FRAGMENT_SIZE, + NM_OPENVPN_KEY_TAP_DEV, + NM_OPENVPN_KEY_DEV, + NM_OPENVPN_KEY_DEV_TYPE, + NM_OPENVPN_KEY_PROTO_TCP, + NM_OPENVPN_KEY_PROXY_TYPE, + NM_OPENVPN_KEY_PROXY_SERVER, + NM_OPENVPN_KEY_PROXY_PORT, + NM_OPENVPN_KEY_PROXY_RETRY, + NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, + NM_OPENVPN_KEY_CIPHER, + NM_OPENVPN_KEY_KEYSIZE, + NM_OPENVPN_KEY_AUTH, + NM_OPENVPN_KEY_TA_DIR, + NM_OPENVPN_KEY_TA, + NM_OPENVPN_KEY_TLS_CRYPT, + NM_OPENVPN_KEY_RENEG_SECONDS, + NM_OPENVPN_KEY_TLS_REMOTE, + NM_OPENVPN_KEY_VERIFY_X509_NAME, + NM_OPENVPN_KEY_REMOTE_RANDOM, + NM_OPENVPN_KEY_TUN_IPV6, + NM_OPENVPN_KEY_REMOTE_CERT_TLS, + NM_OPENVPN_KEY_NS_CERT_TYPE, + NM_OPENVPN_KEY_PING, + NM_OPENVPN_KEY_PING_EXIT, + NM_OPENVPN_KEY_PING_RESTART, + NM_OPENVPN_KEY_MAX_ROUTES, + NM_OPENVPN_KEY_MTU_DISC, + NULL +}; + +static void +copy_values (const char *key, const char *value, gpointer user_data) +{ + GHashTable *hash = (GHashTable *) user_data; + const char **i; + + for (i = &advanced_keys[0]; *i; i++) { + if (strcmp (key, *i)) + continue; + + g_hash_table_insert (hash, g_strdup (key), g_strdup (value)); + } +} + +GHashTable * +advanced_dialog_new_hash_from_connection (NMConnection *connection, + GError **error) +{ + GHashTable *hash; + NMSettingVpn *s_vpn; + const char *secret, *flags; + + hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + + s_vpn = nm_connection_get_setting_vpn (connection); + nm_setting_vpn_foreach_data_item (s_vpn, copy_values, hash); + + /* HTTP Proxy password is special */ + secret = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD); + if (secret) { + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD), + g_strdup (secret)); + } + flags = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD"-flags"); + if (flags) + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD"-flags"), + g_strdup (flags)); + + return hash; +} + +static void +checkbox_toggled_update_widget_cb (GtkWidget *check, gpointer user_data) +{ + GtkWidget *widget = (GtkWidget*) user_data; + + gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check))); +} + +static const char * +nm_find_openvpn (void) +{ + static const char *openvpn_binary_paths[] = { + "/usr/sbin/openvpn", + "/sbin/openvpn", + NULL + }; + const char **openvpn_binary = openvpn_binary_paths; + + while (*openvpn_binary != NULL) { + if (g_file_test (*openvpn_binary, G_FILE_TEST_EXISTS)) + break; + openvpn_binary++; + } + + return *openvpn_binary; +} + +#define TLS_CIPHER_COL_NAME 0 +#define TLS_CIPHER_COL_DEFAULT 1 + +static void +populate_cipher_combo (GtkComboBox *box, const char *user_cipher) +{ + GtkListStore *store; + GtkTreeIter iter; + const char *openvpn_binary = NULL; + gchar *tmp, **items, **item; + gboolean user_added = FALSE; + char *argv[3]; + GError *error = NULL; + gboolean success, ignore_lines = TRUE; + + openvpn_binary = nm_find_openvpn (); + if (!openvpn_binary) + return; + + argv[0] = (char *) openvpn_binary; + argv[1] = "--show-ciphers"; + argv[2] = NULL; + + success = g_spawn_sync ("/", argv, NULL, 0, NULL, NULL, &tmp, NULL, NULL, &error); + if (!success) { + g_warning ("%s: couldn't determine ciphers: %s", __func__, error->message); + g_error_free (error); + return; + } + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); + gtk_combo_box_set_model (box, GTK_TREE_MODEL (store)); + + /* Add default option which won't pass --cipher to openvpn */ + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_CIPHER_COL_NAME, _("Default"), + TLS_CIPHER_COL_DEFAULT, TRUE, -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_CIPHER_COL_NAME, "none", + TLS_CIPHER_COL_DEFAULT, FALSE, -1); + if (g_strcmp0 (user_cipher, "none") == 0) { + gtk_combo_box_set_active_iter (box, &iter); + user_added = TRUE; + } + + items = g_strsplit (tmp, "\n", 0); + g_free (tmp); + + for (item = items; *item; item++) { + char *space; + + /* Don't add anything until after the first blank line. Also, + * any blank line indicates the start of a comment, ended by + * another blank line. + */ + if (!strlen (*item)) { + ignore_lines = !ignore_lines; + continue; + } + + if (ignore_lines) + continue; + + space = strchr (*item, ' '); + if (space) + *space = '\0'; + + if (strcmp (*item, "none") == 0) + continue; + + if (strlen (*item)) { + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_CIPHER_COL_NAME, *item, + TLS_CIPHER_COL_DEFAULT, FALSE, -1); + if (!user_added && user_cipher && !g_ascii_strcasecmp (*item, user_cipher)) { + gtk_combo_box_set_active_iter (box, &iter); + user_added = TRUE; + } + } + } + + /* Add the user-specified cipher if it exists wasn't found by openvpn */ + if (user_cipher && !user_added) { + gtk_list_store_insert (store, &iter, 1); + gtk_list_store_set (store, &iter, + TLS_CIPHER_COL_NAME, user_cipher, + TLS_CIPHER_COL_DEFAULT, FALSE, -1); + gtk_combo_box_set_active_iter (box, &iter); + } else if (!user_added) { + gtk_combo_box_set_active (box, 0); + } + + g_object_unref (G_OBJECT (store)); + g_strfreev (items); +} + +#define HMACAUTH_COL_NAME 0 +#define HMACAUTH_COL_VALUE 1 +#define HMACAUTH_COL_DEFAULT 2 + +static void +populate_hmacauth_combo (GtkComboBox *box, const char *hmacauth) +{ + GtkListStore *store; + GtkTreeIter iter; + gboolean active_initialized = FALSE; + const char **item; + static const char *items[] = { + NM_OPENVPN_AUTH_NONE, + NM_OPENVPN_AUTH_RSA_MD4, + NM_OPENVPN_AUTH_MD5, + NM_OPENVPN_AUTH_SHA1, + NM_OPENVPN_AUTH_SHA224, + NM_OPENVPN_AUTH_SHA256, + NM_OPENVPN_AUTH_SHA384, + NM_OPENVPN_AUTH_SHA512, + NM_OPENVPN_AUTH_RIPEMD160, + NULL + }; + + store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); + gtk_combo_box_set_model (box, GTK_TREE_MODEL (store)); + + /* Add default option which won't pass --auth to openvpn */ + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + HMACAUTH_COL_NAME, _("Default"), + HMACAUTH_COL_DEFAULT, TRUE, -1); + + /* Add options */ + for (item = items; *item; item++) { + const char *name = NULL; + + if (!strcmp (*item, NM_OPENVPN_AUTH_NONE)) + name = _("None"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_RSA_MD4)) + name = _("RSA MD-4"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_MD5)) + name = _("MD-5"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_SHA1)) + name = _("SHA-1"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_SHA224)) + name = _("SHA-224"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_SHA256)) + name = _("SHA-256"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_SHA384)) + name = _("SHA-384"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_SHA512)) + name = _("SHA-512"); + else if (!strcmp (*item, NM_OPENVPN_AUTH_RIPEMD160)) + name = _("RIPEMD-160"); + else + g_assert_not_reached (); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + HMACAUTH_COL_NAME, name, + HMACAUTH_COL_VALUE, *item, + HMACAUTH_COL_DEFAULT, FALSE, -1); + if (hmacauth && !g_ascii_strcasecmp (*item, hmacauth)) { + gtk_combo_box_set_active_iter (box, &iter); + active_initialized = TRUE; + } + } + + if (!active_initialized) + gtk_combo_box_set_active (box, 0); + + g_object_unref (store); +} + +#define TLS_REMOTE_MODE_NONE "none" +#define TLS_REMOTE_MODE_SUBJECT NM_OPENVPN_VERIFY_X509_NAME_TYPE_SUBJECT +#define TLS_REMOTE_MODE_NAME NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME +#define TLS_REMOTE_MODE_NAME_PREFIX NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME_PREFIX +#define TLS_REMOTE_MODE_LEGACY "legacy" + +#define TLS_REMOTE_MODE_COL_NAME 0 +#define TLS_REMOTE_MODE_COL_VALUE 1 + +static void +populate_tls_remote_mode_entry_combo (GtkEntry* entry, GtkComboBox *box, + const char *tls_remote, const char *x509_name) +{ + GtkListStore *store; + GtkTreeIter iter; + const char *subject_name = NULL; + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + gtk_combo_box_set_model (box, GTK_TREE_MODEL (store)); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_REMOTE_MODE_COL_NAME, _("Don’t verify certificate identification"), + TLS_REMOTE_MODE_COL_VALUE, TLS_REMOTE_MODE_NONE, + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_REMOTE_MODE_COL_NAME, _("Verify whole subject exactly"), + TLS_REMOTE_MODE_COL_VALUE, TLS_REMOTE_MODE_SUBJECT, + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_REMOTE_MODE_COL_NAME, _("Verify name exactly"), + TLS_REMOTE_MODE_COL_VALUE, TLS_REMOTE_MODE_NAME, + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_REMOTE_MODE_COL_NAME, _("Verify name by prefix"), + TLS_REMOTE_MODE_COL_VALUE, TLS_REMOTE_MODE_NAME_PREFIX, + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + TLS_REMOTE_MODE_COL_NAME, _("Verify subject partially (legacy mode, strongly discouraged)"), + TLS_REMOTE_MODE_COL_VALUE, TLS_REMOTE_MODE_LEGACY, + -1); + + if (x509_name && strlen (x509_name)) { + if (g_str_has_prefix (x509_name, "name:")) + gtk_combo_box_set_active (box, 2); + else if (g_str_has_prefix (x509_name, "name-prefix:")) + gtk_combo_box_set_active (box, 3); + else + gtk_combo_box_set_active (box, 1); + + subject_name = strchr (x509_name, ':'); + if (subject_name) + subject_name++; + else + subject_name = x509_name; + } else if (tls_remote && strlen (tls_remote)) { + gtk_combo_box_set_active (box, 4); + + subject_name = tls_remote; + } else { + gtk_combo_box_set_active (box, 0); + + subject_name = ""; + } + + gtk_entry_set_text (entry, subject_name); + + g_object_unref (store); +} + +static void +tls_remote_changed (GtkWidget *widget, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + GtkWidget *entry, *combo, *ok_button; + GtkTreeIter iter; + gboolean entry_enabled = TRUE, entry_has_error = FALSE; + gboolean legacy_tls_remote = FALSE; + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_entry")); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_mode_combo")); + ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); + + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + gs_free char *tls_remote_mode = NULL; + GtkTreeModel *combo_model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + gtk_tree_model_get (combo_model, &iter, TLS_REMOTE_MODE_COL_VALUE, &tls_remote_mode, -1); + g_return_if_fail (tls_remote_mode); + + /* If a mode of 'none' is selected, disable the subject entry control. + Otherwise, enable the entry, and set up it's error state based on + whether it is empty or not (it should not be). */ + if (!strcmp (tls_remote_mode, TLS_REMOTE_MODE_NONE)) { + entry_enabled = FALSE; + } else { + const char *subject = gtk_entry_get_text (GTK_ENTRY (entry)); + + entry_enabled = TRUE; + entry_has_error = !subject || !subject[0]; + legacy_tls_remote = nm_streq (tls_remote_mode, TLS_REMOTE_MODE_LEGACY); + } + } + + gtk_widget_set_sensitive (entry, entry_enabled); + if(entry_has_error) { + widget_set_error (entry); + gtk_widget_set_sensitive (ok_button, FALSE); + } else { + if (legacy_tls_remote) { + /* selecting tls-remote is not an error, but strongly discouraged. I wish + * there would be a warning-class as well. Anyway, mark the widget as + * erroneous, although this doesn't make the connection invalid (which + * is an ugly inconsistency). */ + widget_set_error (entry); + } else + widget_unset_error (entry); + gtk_widget_set_sensitive (ok_button, TRUE); + } + +} + +static void +remote_tls_cert_toggled_cb (GtkWidget *widget, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + gboolean use_remote_cert_tls = FALSE; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_checkbutton")); + use_remote_cert_tls = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_label")); + gtk_widget_set_sensitive (widget, use_remote_cert_tls); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_combo")); + gtk_widget_set_sensitive (widget, use_remote_cert_tls); +} + +#define REMOTE_CERT_COL_NAME 0 +#define REMOTE_CERT_COL_VALUE 1 + +static void +populate_remote_cert_tls_combo (GtkComboBox *box, const char *remote_cert) +{ + GtkListStore *store; + GtkTreeIter iter; + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + gtk_combo_box_set_model (box, GTK_TREE_MODEL (store)); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + REMOTE_CERT_COL_NAME, _("Server"), + REMOTE_CERT_COL_VALUE, NM_OPENVPN_REM_CERT_TLS_SERVER, + -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + REMOTE_CERT_COL_NAME, _("Client"), + REMOTE_CERT_COL_VALUE, NM_OPENVPN_REM_CERT_TLS_CLIENT, + -1); + + if (g_strcmp0 (remote_cert, NM_OPENVPN_REM_CERT_TLS_CLIENT) == 0) + gtk_combo_box_set_active (box, 1); + else + gtk_combo_box_set_active (box, 0); + + g_object_unref (store); +} + +#define TLS_AUTH_MODE_NONE 0 +#define TLS_AUTH_MODE_AUTH 1 +#define TLS_AUTH_MODE_CRYPT 2 + +static void +tls_auth_toggled_cb (GtkWidget *widget, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + gint active; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_mode")); + active = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "direction_label")); + gtk_widget_set_sensitive (widget, active == TLS_AUTH_MODE_AUTH); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "direction_combo")); + gtk_widget_set_sensitive (widget, active == TLS_AUTH_MODE_AUTH); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_label")); + gtk_widget_set_sensitive (widget, active != TLS_AUTH_MODE_NONE); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_chooser")); + gtk_widget_set_sensitive (widget, active != TLS_AUTH_MODE_NONE); +} + +static void +ns_cert_type_toggled_cb (GtkWidget *widget, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + gboolean use_ns_cert_type = FALSE; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_checkbutton")); + use_ns_cert_type = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_label")); + gtk_widget_set_sensitive (widget, use_ns_cert_type); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_combo")); + gtk_widget_set_sensitive (widget, use_ns_cert_type); +} + +#define NS_CERT_TYPE_COL_NAME 0 +#define NS_CERT_TYPE_COL_VALUE 1 + +static void +populate_ns_cert_type_combo (GtkComboBox *box, const char *type) +{ + GtkListStore *store; + GtkTreeIter iter; + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + gtk_combo_box_set_model (box, GTK_TREE_MODEL (store)); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + NS_CERT_TYPE_COL_NAME, _("Server"), + NS_CERT_TYPE_COL_VALUE, NM_OPENVPN_NS_CERT_TYPE_SERVER, + -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + NS_CERT_TYPE_COL_NAME, _("Client"), + NS_CERT_TYPE_COL_VALUE, NM_OPENVPN_NS_CERT_TYPE_CLIENT, + -1); + + if (g_strcmp0 (type, NM_OPENVPN_NS_CERT_TYPE_CLIENT) == 0) + gtk_combo_box_set_active (box, 1); + else + gtk_combo_box_set_active (box, 0); + + g_object_unref (store); +} + +static void +mtu_disc_toggled_cb (GtkWidget *widget, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + gboolean use_mtu_disc; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_checkbutton")); + use_mtu_disc = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_combo")); + gtk_widget_set_sensitive (widget, use_mtu_disc); +} + +#define PROXY_TYPE_NONE 0 +#define PROXY_TYPE_HTTP 1 +#define PROXY_TYPE_SOCKS 2 + +#define DEVICE_TYPE_IDX_TUN 0 +#define DEVICE_TYPE_IDX_TAP 1 + +#define PING_EXIT 0 +#define PING_RESTART 1 + +static void +proxy_type_changed (GtkComboBox *combo, gpointer user_data) +{ + GtkBuilder *builder = GTK_BUILDER (user_data); + gboolean sensitive; + GtkWidget *widget; + guint32 i = 0; + int active; + const char *widgets[] = { + "proxy_desc_label", "proxy_server_label", "proxy_server_entry", + "proxy_port_label", "proxy_port_spinbutton", "proxy_retry_checkbutton", + "proxy_username_label", "proxy_password_label", "proxy_username_entry", + "proxy_password_entry", "show_proxy_password", NULL + }; + const char *user_pass_widgets[] = { + "proxy_username_label", "proxy_password_label", "proxy_username_entry", + "proxy_password_entry", "show_proxy_password", NULL + }; + + active = gtk_combo_box_get_active (combo); + sensitive = (active > PROXY_TYPE_NONE); + + while (widgets[i]) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, widgets[i++])); + gtk_widget_set_sensitive (widget, sensitive); + } + + /* Additionally user/pass widgets need to be disabled for SOCKS */ + if (active == PROXY_TYPE_SOCKS) { + i = 0; + while (user_pass_widgets[i]) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, user_pass_widgets[i++])); + gtk_widget_set_sensitive (widget, FALSE); + } + } + + /* Proxy options require TCP; but don't reset the TCP checkbutton + * to false when the user disables HTTP proxy; leave it checked. + */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tcp_checkbutton")); + if (sensitive == TRUE) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + gtk_widget_set_sensitive (widget, !sensitive); +} + +static void +show_proxy_password_toggled_cb (GtkCheckButton *button, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + GtkWidget *widget; + gboolean visible; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_password_entry")); + g_assert (widget); + + visible = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); + gtk_entry_set_visibility (GTK_ENTRY (widget), visible); +} + +static void +device_name_filter_cb (GtkEntry *entry, + const gchar *text, + gint length, + gint *position, + void *user_data) +{ + int i, count = 0; + gchar *result = g_new (gchar, length + 1); + GtkEditable *editable = GTK_EDITABLE (entry); + + for (i = 0; i < length; i++) { + if (text[i] == '/' || g_ascii_isspace (text[i])) + continue; + result[count++] = text[i]; + } + result[count] = 0; + + if (count > 0) { + g_signal_handlers_block_by_func (G_OBJECT (editable), + G_CALLBACK (device_name_filter_cb), + user_data); + gtk_editable_insert_text (editable, result, count, position); + g_signal_handlers_unblock_by_func (G_OBJECT (editable), + G_CALLBACK (device_name_filter_cb), + user_data); + } + g_signal_stop_emission_by_name (G_OBJECT (editable), "insert-text"); + + g_free (result); +} + +static gboolean +device_name_changed_cb (GtkEntry *entry, + gpointer user_data) +{ + GtkEditable *editable = GTK_EDITABLE (entry); + GtkWidget *ok_button = user_data; + gboolean entry_sensitive; + char *entry_text; + + entry_sensitive = gtk_widget_get_sensitive (GTK_WIDGET (entry)); + entry_text = gtk_editable_get_chars (editable, 0, -1); + + /* Change cell's background to red if the value is invalid */ + if ( entry_sensitive + && entry_text[0] != '\0' + && !_nm_utils_is_valid_iface_name (entry_text)) { + widget_set_error (GTK_WIDGET (editable)); + gtk_widget_set_sensitive (ok_button, FALSE); + } else { + widget_unset_error (GTK_WIDGET (editable)); + gtk_widget_set_sensitive (ok_button, TRUE); + } + + g_free (entry_text); + return FALSE; +} + +static void +dev_checkbox_toggled_cb (GtkWidget *check, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + GtkWidget *combo, *entry, *ok_button; + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "dev_type_combo")); + entry = GTK_WIDGET (gtk_builder_get_object (builder, "dev_entry")); + ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); + + /* Set values to default ones */ + if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check))) { + gtk_entry_set_text (GTK_ENTRY (entry), ""); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), DEVICE_TYPE_IDX_TUN); + } + + checkbox_toggled_update_widget_cb (check, combo); + checkbox_toggled_update_widget_cb (check, entry); + device_name_changed_cb (GTK_ENTRY (entry), ok_button); +} + +static gboolean +_hash_get_boolean (GHashTable *hash, + const char *key) +{ + const char *value; + + nm_assert (hash); + nm_assert (key && key[0]); + + value = g_hash_table_lookup (hash, key); + + return nm_streq0 (value, "yes"); +} + +static GtkToggleButton * +_builder_init_toggle_button (GtkBuilder *builder, + const char *widget_name, + gboolean active_state) +{ + GtkToggleButton *widget; + + widget = (GtkToggleButton *) gtk_builder_get_object (builder, widget_name); + g_return_val_if_fail (GTK_IS_TOGGLE_BUTTON (widget), NULL); + + gtk_toggle_button_set_active (widget, active_state); + return widget; +} + +static void +_builder_init_optional_spinbutton (GtkBuilder *builder, + const char *checkbutton_name, + const char *spinbutton_name, + gboolean active_state, + gint64 value) +{ + GtkWidget *widget; + GtkWidget *spin; + + widget = (GtkWidget *) gtk_builder_get_object (builder, checkbutton_name); + g_return_if_fail (GTK_IS_TOGGLE_BUTTON (widget)); + + spin = (GtkWidget *) gtk_builder_get_object (builder, spinbutton_name); + g_return_if_fail (GTK_IS_SPIN_BUTTON (spin)); + + g_signal_connect ((GObject *) widget, "toggled", G_CALLBACK (checkbox_toggled_update_widget_cb), spin); + + gtk_spin_button_set_value ((GtkSpinButton *) spin, (double) value); + + gtk_widget_set_sensitive (spin, active_state); + gtk_toggle_button_set_active ((GtkToggleButton *) widget, active_state); +} + +static void +ping_exit_restart_checkbox_toggled_cb (GtkWidget *check, gpointer user_data) +{ + GtkBuilder *builder = (GtkBuilder *) user_data; + GtkWidget *combo, *spin; + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_combo")); + spin = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_spinbutton")); + + checkbox_toggled_update_widget_cb (check, combo); + checkbox_toggled_update_widget_cb (check, spin); +} + +#define TA_DIR_COL_NAME 0 +#define TA_DIR_COL_NUM 1 + +GtkWidget * +advanced_dialog_new (GHashTable *hash, const char *contype) +{ + GtkBuilder *builder; + GtkWidget *dialog = NULL; + GtkWidget *widget, *combo, *spin, *entry, *ok_button; + const char *value, *value2; + const char *dev, *dev_type, *tap_dev; + GtkListStore *store; + GtkTreeIter iter; + guint i; + guint32 active; + guint32 pw_flags = NM_SETTING_SECRET_FLAG_NONE; + GError *error = NULL; + + g_return_val_if_fail (hash != NULL, NULL); + + builder = gtk_builder_new (); + + gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); + + if (!gtk_builder_add_from_resource (builder, "/org/freedesktop/network-manager-openvpn/nm-openvpn-dialog.ui", &error)) { + g_error_free (error); + g_object_unref (G_OBJECT (builder)); + g_return_val_if_reached (NULL); + } + + dialog = GTK_WIDGET (gtk_builder_get_object (builder, "openvpn-advanced-dialog")); + if (!dialog) { + g_object_unref (G_OBJECT (builder)); + g_return_val_if_reached (NULL); + } + gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + + g_object_set_data_full (G_OBJECT (dialog), "builder", + builder, (GDestroyNotify) g_object_unref); + g_object_set_data (G_OBJECT (dialog), "connection-type", GINT_TO_POINTER (contype)); + + ok_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button")); + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_RENEG_SECONDS); + _builder_init_optional_spinbutton (builder, "reneg_checkbutton", "reneg_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXINT, 0)); + + + /* Proxy support */ + combo = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_type_combo")); + + store = gtk_list_store_new (1, G_TYPE_STRING); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("Not required"), -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("HTTP"), -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("SOCKS"), -1); + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PROXY_SERVER); + value2 = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PROXY_PORT); + if (value && strlen (value) && value2 && strlen (value2)) { + long int tmp = 0; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_server_entry")); + gtk_entry_set_text (GTK_ENTRY (widget), value); + + errno = 0; + tmp = strtol (value2, NULL, 10); + if (errno != 0 || tmp < 0 || tmp > 65535) + tmp = 0; + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_port_spinbutton")); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), (gdouble) tmp); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_retry_checkbutton")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PROXY_RETRY); + if (value && !strcmp (value, "yes")) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME); + if (value && strlen (value)) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_username_entry")); + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD); + if (value && strlen (value)) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_password_entry")); + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD"-flags"); + if (value && strlen (value)) { + errno = 0; + tmp = strtol (value, NULL, 10); + if (errno != 0 || tmp < 0 || tmp > 65535) + tmp = 0; + pw_flags = (guint32) tmp; + } + } + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_password_entry")); + nma_utils_setup_password_storage (widget, pw_flags, NULL, NULL, + TRUE, FALSE); + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PROXY_TYPE); + active = PROXY_TYPE_NONE; + if (value) { + if (!strcmp (value, "http")) + active = PROXY_TYPE_HTTP; + else if (!strcmp (value, "socks")) + active = PROXY_TYPE_SOCKS; + } + + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); + proxy_type_changed (GTK_COMBO_BOX (combo), builder); + g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (proxy_type_changed), builder); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "show_proxy_password")); + g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (show_proxy_password_toggled_cb), builder); + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PORT); + _builder_init_optional_spinbutton (builder, "port_checkbutton", "port_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 1, 65535, 1194)); + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_TUNNEL_MTU); + _builder_init_optional_spinbutton (builder, "tunmtu_checkbutton", "tunmtu_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 1, 65535, 1500)); + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_FRAGMENT_SIZE); + _builder_init_optional_spinbutton (builder, "fragment_checkbutton", "fragment_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 0, 65535, 1300)); + + + value = comp_lzo_values_conf_coerce (g_hash_table_lookup (hash, NM_OPENVPN_KEY_COMP_LZO)); + widget = GTK_WIDGET (_builder_init_toggle_button (builder, "lzo_checkbutton", value != NULL)); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "lzo_combo")); + store = gtk_list_store_new (1, G_TYPE_STRING); + active = 0; + for (i = 0; i < G_N_ELEMENTS (comp_lzo_values); i++) { + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, comp_lzo_values_conf_to_display (comp_lzo_values[i]), + -1); + if (nm_streq (comp_lzo_values[i], value ?: "adaptive")) + active = i; + } + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); + g_object_bind_property (widget, "active", combo, "sensitive", G_BINDING_SYNC_CREATE); + + _builder_init_toggle_button (builder, "mssfix_checkbutton", _hash_get_boolean (hash, NM_OPENVPN_KEY_MSSFIX)); + _builder_init_toggle_button (builder, "float_checkbutton", _hash_get_boolean (hash, NM_OPENVPN_KEY_FLOAT)); + _builder_init_toggle_button (builder, "tcp_checkbutton", _hash_get_boolean (hash, NM_OPENVPN_KEY_PROTO_TCP)); + + + /* Populate device-related widgets */ + dev = g_hash_table_lookup (hash, NM_OPENVPN_KEY_DEV); + dev_type = g_hash_table_lookup (hash, NM_OPENVPN_KEY_DEV_TYPE); + tap_dev = g_hash_table_lookup (hash, NM_OPENVPN_KEY_TAP_DEV); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "dev_checkbutton")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), (dev && *dev) || dev_type || tap_dev); + dev_checkbox_toggled_cb (widget, builder); + g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (dev_checkbox_toggled_cb), builder); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "dev_type_combo")); + active = DEVICE_TYPE_IDX_TUN; + if ( !g_strcmp0 (dev_type, "tap") + || (!dev_type && dev && g_str_has_prefix (dev, "tap")) + || (!dev_type && !g_strcmp0 (tap_dev, "yes"))) + active = DEVICE_TYPE_IDX_TAP; + + store = gtk_list_store_new (1, G_TYPE_STRING); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("TUN"), -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("TAP"), -1); + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), active); + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "dev_entry")); + gtk_entry_set_max_length (GTK_ENTRY (entry), 15); /* interface name is max 15 chars */ + gtk_entry_set_placeholder_text (GTK_ENTRY (entry), _("(automatic)")); + g_signal_connect (G_OBJECT (entry), "insert-text", G_CALLBACK (device_name_filter_cb), NULL); + g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (device_name_changed_cb), ok_button); + gtk_entry_set_text (GTK_ENTRY (entry), dev ?: ""); + + + _builder_init_toggle_button (builder, "remote_random_checkbutton", _hash_get_boolean (hash, NM_OPENVPN_KEY_REMOTE_RANDOM)); + _builder_init_toggle_button (builder, "tun_ipv6_checkbutton", _hash_get_boolean (hash, NM_OPENVPN_KEY_TUN_IPV6)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "cipher_combo")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_CIPHER); + populate_cipher_combo (GTK_COMBO_BOX (widget), value); + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_KEYSIZE); + _builder_init_optional_spinbutton (builder, "keysize_checkbutton", "keysize_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 1, 65535, 128)); + + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "hmacauth_combo")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_AUTH); + populate_hmacauth_combo (GTK_COMBO_BOX (widget), value); + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_entry")); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_mode_combo")); + populate_tls_remote_mode_entry_combo (GTK_ENTRY (entry), GTK_COMBO_BOX (combo), + g_hash_table_lookup (hash, NM_OPENVPN_KEY_TLS_REMOTE), + g_hash_table_lookup (hash, NM_OPENVPN_KEY_VERIFY_X509_NAME)); + g_signal_connect (G_OBJECT (entry), "changed", G_CALLBACK (tls_remote_changed), builder); + g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (tls_remote_changed), builder); + tls_remote_changed (entry, builder); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_checkbutton")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_REMOTE_CERT_TLS); + if (value && strlen (value)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (remote_tls_cert_toggled_cb), builder); + remote_tls_cert_toggled_cb (widget, builder); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_combo")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_REMOTE_CERT_TLS); + populate_remote_cert_tls_combo (GTK_COMBO_BOX (widget), value); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_checkbutton")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_NS_CERT_TYPE); + if (value && strlen (value)) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (ns_cert_type_toggled_cb), builder); + ns_cert_type_toggled_cb (widget, builder); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_combo")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_NS_CERT_TYPE); + populate_ns_cert_type_combo (GTK_COMBO_BOX (widget), value); + + if (NM_IN_STRSET (contype, + NM_OPENVPN_CONTYPE_TLS, + NM_OPENVPN_CONTYPE_PASSWORD_TLS, + NM_OPENVPN_CONTYPE_PASSWORD)) { + int direction = -1; + + /* Initialize direction combo */ + combo = GTK_WIDGET (gtk_builder_get_object (builder, "direction_combo")); + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, TA_DIR_COL_NAME, _("None"), TA_DIR_COL_NUM, -1, -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, TA_DIR_COL_NAME, "0", TA_DIR_COL_NUM, 0, -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, TA_DIR_COL_NAME, "1", TA_DIR_COL_NUM, 1, -1); + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_mode")); + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_chooser")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_TA); + value2 = g_hash_table_lookup (hash, NM_OPENVPN_KEY_TLS_CRYPT); + if (value2 && value2[0]) { + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), TLS_AUTH_MODE_CRYPT); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), value2); + } else if (value && value[0]) { + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), TLS_AUTH_MODE_AUTH); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (widget), value); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_TA_DIR); + if (value && value[0]) { + direction = (int) strtol (value, NULL, 10); + /* If direction is not 0 or 1, use no direction */ + if (direction != 0 && direction != 1) + direction = -1; + } + widget = GTK_WIDGET (gtk_builder_get_object (builder, "direction_combo")); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), direction + 1); + } else + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), TLS_AUTH_MODE_NONE); + + g_signal_connect (G_OBJECT (combo), "changed", G_CALLBACK (tls_auth_toggled_cb), builder); + tls_auth_toggled_cb (combo, builder); + } else { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "options_notebook")); + gtk_notebook_remove_page (GTK_NOTEBOOK (widget), 2); + } + + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PING); + _builder_init_optional_spinbutton (builder, "ping_checkbutton", "ping_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 1, 65535, 30)); + + + /* ping-exit / ping-restart */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_checkbutton")); + spin = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_spinbutton")); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_combo")); + g_signal_connect ((GObject *) widget, "toggled", G_CALLBACK (ping_exit_restart_checkbox_toggled_cb), builder); + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PING_EXIT); + active = PING_EXIT; + if (!value) { + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_PING_RESTART); + if (value) + active = PING_RESTART; + } + + store = gtk_list_store_new (1, G_TYPE_STRING); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("ping-exit"), -1); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _("ping-restart"), -1); + gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); + g_object_unref (store); + gtk_combo_box_set_active ((GtkComboBox *) combo, active); + + gtk_spin_button_set_value ((GtkSpinButton *) spin, + (double) _nm_utils_ascii_str_to_int64 (value, 10, 1, 65535, 30)); + gtk_widget_set_sensitive (combo, !!value); + gtk_widget_set_sensitive (spin, !!value); + gtk_toggle_button_set_active ((GtkToggleButton *) widget, !!value); + + /* MTU discovery */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_checkbutton")); + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_MTU_DISC); + if (value && value[0]) { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + combo = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_combo")); + if (nm_streq (value, "maybe")) + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 1); + else if (nm_streq (value, "yes")) + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 2); + else + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); + } + g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (mtu_disc_toggled_cb), builder); + mtu_disc_toggled_cb (widget, builder); + + value = g_hash_table_lookup (hash, NM_OPENVPN_KEY_MAX_ROUTES); + _builder_init_optional_spinbutton (builder, "max_routes_checkbutton", "max_routes_spinbutton", !!value, + _nm_utils_ascii_str_to_int64 (value, 10, 0, 100000000, 100)); + + return dialog; +} + +GHashTable * +advanced_dialog_new_hash_from_dialog (GtkWidget *dialog, GError **error) +{ + GHashTable *hash; + GtkWidget *widget, *entry, *combo; + GtkBuilder *builder; + const char *contype = NULL; + const char *value; + int active; + int proxy_type = PROXY_TYPE_NONE; + GtkTreeModel *model; + GtkTreeIter iter; + + g_return_val_if_fail (dialog != NULL, NULL); + if (error) + g_return_val_if_fail (*error == NULL, NULL); + + builder = g_object_get_data (G_OBJECT (dialog), "builder"); + g_return_val_if_fail (builder != NULL, NULL); + + hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "reneg_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int reneg_seconds; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "reneg_spinbutton")); + reneg_seconds = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_RENEG_SECONDS), g_strdup_printf ("%d", reneg_seconds)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tunmtu_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int tunmtu_size; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tunmtu_spinbutton")); + tunmtu_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TUNNEL_MTU), g_strdup_printf ("%d", tunmtu_size)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "fragment_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int fragment_size; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "fragment_spinbutton")); + fragment_size = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_FRAGMENT_SIZE), g_strdup_printf ("%d", fragment_size)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "port_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int port; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "port_spinbutton")); + port = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PORT), g_strdup_printf ("%d", port)); + } + + /* Proxy support */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_type_combo")); + proxy_type = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + if (proxy_type != PROXY_TYPE_NONE) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_server_entry")); + value = (char *) gtk_entry_get_text (GTK_ENTRY (widget)); + if (value && strlen (value)) { + int proxy_port; + + if (proxy_type == PROXY_TYPE_HTTP) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROXY_TYPE), g_strdup ("http")); + else if (proxy_type == PROXY_TYPE_SOCKS) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROXY_TYPE), g_strdup ("socks")); + + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROXY_SERVER), g_strdup (value)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_port_spinbutton")); + proxy_port = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + if (proxy_port > 0) { + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROXY_PORT), + g_strdup_printf ("%d", proxy_port)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_retry_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROXY_RETRY), g_strdup ("yes")); + + if (proxy_type == PROXY_TYPE_HTTP) { + guint32 pw_flags; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_username_entry")); + value = (char *) gtk_entry_get_text (GTK_ENTRY (widget)); + if (value && strlen (value)) { + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_USERNAME), + g_strdup (value)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "proxy_password_entry")); + value = (char *) gtk_entry_get_text (GTK_ENTRY (widget)); + if (value && strlen (value)) { + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD), + g_strdup (value)); + } + + pw_flags = nma_utils_menu_to_secret_flags (widget); + if (pw_flags != NM_SETTING_SECRET_FLAG_NONE) { + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD"-flags"), + g_strdup_printf ("%d", pw_flags)); + } + } + } + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "lzo_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + combo = GTK_WIDGET (gtk_builder_get_object (builder, "lzo_combo")); + active = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); + if (active >= 0 && active < G_N_ELEMENTS (comp_lzo_values)) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_COMP_LZO), g_strdup (comp_lzo_values[active])); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mssfix_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_MSSFIX), g_strdup ("yes")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "float_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_FLOAT), g_strdup ("yes")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tcp_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_PROTO_TCP), g_strdup ("yes")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "dev_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int device_type; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "dev_type_combo")); + device_type = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_DEV_TYPE), + g_strdup (device_type == DEVICE_TYPE_IDX_TUN ? "tun" : "tap")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "dev_entry")); + value = gtk_entry_get_text (GTK_ENTRY (widget)); + if (value && value[0] != '\0') + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_DEV), g_strdup (value)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_random_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_REMOTE_RANDOM), g_strdup ("yes")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tun_ipv6_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TUN_IPV6), g_strdup ("yes")); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "cipher_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + char *cipher = NULL; + gboolean is_default = TRUE; + + gtk_tree_model_get (model, &iter, + TLS_CIPHER_COL_NAME, &cipher, + TLS_CIPHER_COL_DEFAULT, &is_default, -1); + if (!is_default && cipher) { + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_CIPHER), g_strdup (cipher)); + } + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "keysize_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int keysize_val; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "keysize_spinbutton")); + keysize_val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_KEYSIZE), g_strdup_printf ("%d", keysize_val)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "hmacauth_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + char *hmacauth = NULL; + gboolean is_default = TRUE; + + gtk_tree_model_get (model, &iter, + HMACAUTH_COL_VALUE, &hmacauth, + HMACAUTH_COL_DEFAULT, &is_default, -1); + if (!is_default && hmacauth) { + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_AUTH), g_strdup (hmacauth)); + } + } + + contype = g_object_get_data (G_OBJECT (dialog), "connection-type"); + if ( !strcmp (contype, NM_OPENVPN_CONTYPE_TLS) + || !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS) + || !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD)) { + char *filename; + + entry = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_entry")); + value = gtk_entry_get_text (GTK_ENTRY (entry)); + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "tls_remote_mode_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + + if (value && strlen (value) && gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)) { + gs_free char *tls_remote_mode = NULL; + gtk_tree_model_get (model, &iter, TLS_REMOTE_MODE_COL_VALUE, &tls_remote_mode, -1); + + if (!g_strcmp0 (tls_remote_mode, TLS_REMOTE_MODE_NONE)) { + // pass + } else if (!g_strcmp0 (tls_remote_mode, TLS_REMOTE_MODE_LEGACY)) { + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TLS_REMOTE), g_strdup(value)); + } else { + char *x509_name = g_strdup_printf ("%s:%s", tls_remote_mode, value); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_VERIFY_X509_NAME), x509_name); + } + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_cert_tls_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + char *remote_cert = NULL; + + gtk_tree_model_get (model, &iter, REMOTE_CERT_COL_VALUE, &remote_cert, -1); + if (remote_cert) + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_REMOTE_CERT_TLS), + remote_cert); + } + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ns_cert_type_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + char *type = NULL; + + gtk_tree_model_get (model, &iter, NS_CERT_TYPE_COL_VALUE, &type, -1); + if (type) + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_NS_CERT_TYPE), + type); + } + } + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_mode")); + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combo))) { + case TLS_AUTH_MODE_AUTH: + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_chooser")); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (filename && filename[0]) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TA), g_strdup (filename)); + g_free (filename); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "direction_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter)) { + int direction = -1; + + gtk_tree_model_get (model, &iter, TA_DIR_COL_NUM, &direction, -1); + if (direction >= 0) { + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TA_DIR), + g_strdup_printf ("%d", direction)); + } + } + break; + case TLS_AUTH_MODE_CRYPT: + widget = GTK_WIDGET (gtk_builder_get_object (builder, "tls_auth_chooser")); + filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); + if (filename && filename[0]) + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_TLS_CRYPT), g_strdup (filename)); + g_free (filename); + break; + case TLS_AUTH_MODE_NONE: + break; + } + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int ping_val; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_spinbutton")); + ping_val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_PING), + g_strdup_printf ("%d", ping_val)); + } + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int ping_exit_type, ping_val; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_combo")); + ping_exit_type = gtk_combo_box_get_active (GTK_COMBO_BOX (widget)); + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "ping_exit_restart_spinbutton")); + ping_val = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + + g_hash_table_insert (hash, + ping_exit_type == PING_EXIT ? + g_strdup (NM_OPENVPN_KEY_PING_EXIT) : + g_strdup (NM_OPENVPN_KEY_PING_RESTART), + g_strdup_printf ("%d", ping_val)); + } + + /* max routes */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + int max_routes; + + widget = GTK_WIDGET (gtk_builder_get_object (builder, "max_routes_spinbutton")); + max_routes = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (widget)); + g_hash_table_insert (hash, g_strdup (NM_OPENVPN_KEY_MAX_ROUTES), g_strdup_printf ("%d", max_routes)); + } + + /* MTU discovery */ + widget = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_checkbutton")); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) { + char *val = NULL; + + combo = GTK_WIDGET (gtk_builder_get_object (builder, "mtu_disc_combo")); + switch (gtk_combo_box_get_active (GTK_COMBO_BOX (combo))) { + case 0: + val = "no"; + break; + case 1: + val = "maybe"; + break; + case 2: + val = "yes"; + break; + } + if (val) { + g_hash_table_insert (hash, + g_strdup (NM_OPENVPN_KEY_MTU_DISC), + g_strdup (val)); + } + } + + return hash; +} + diff --git a/properties/auth-helpers.h b/properties/auth-helpers.h new file mode 100644 index 0000000..91ddcb2 --- /dev/null +++ b/properties/auth-helpers.h @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * + * Copyright (C) 2008 Dan Williams, + * + * 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. + * + **************************************************************************/ + +#ifndef _AUTH_HELPERS_H_ +#define _AUTH_HELPERS_H_ + +#include + +typedef void (*ChangedCallback) (GtkWidget *widget, gpointer user_data); + +void tls_pw_init_auth_widget (GtkBuilder *builder, + NMSettingVpn *s_vpn, + const char *contype, + const char *prefix, + ChangedCallback changed_cb, + gpointer user_data); + +void sk_init_auth_widget (GtkBuilder *builder, + NMSettingVpn *s_vpn, + ChangedCallback changed_cb, + gpointer user_data); + +gboolean auth_widget_check_validity (GtkBuilder *builder, const char *contype, GError **error); + +gboolean auth_widget_update_connection (GtkBuilder *builder, + const char *contype, + NMSettingVpn *s_vpn); + +GtkFileFilter *tls_file_chooser_filter_new (gboolean pkcs_allowed); + +GtkFileFilter *sk_file_chooser_filter_new (void); + +GtkWidget *advanced_dialog_new (GHashTable *hash, const char *contype); + +GHashTable *advanced_dialog_new_hash_from_connection (NMConnection *connection, GError **error); + +GHashTable *advanced_dialog_new_hash_from_dialog (GtkWidget *dialog, GError **error); + +#endif diff --git a/properties/gresource.xml b/properties/gresource.xml new file mode 100644 index 0000000..f71de10 --- /dev/null +++ b/properties/gresource.xml @@ -0,0 +1,6 @@ + + + + nm-openvpn-dialog.ui + + diff --git a/properties/import-export.c b/properties/import-export.c new file mode 100644 index 0000000..8bce07c --- /dev/null +++ b/properties/import-export.c @@ -0,0 +1,2143 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * + * 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. + * + * Copyright (C) 2008 - 2013 Dan Williams and Red Hat, Inc. + * + **************************************************************************/ + +#include "nm-default.h" + +#include "import-export.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "nm-utils/nm-shared-utils.h" + + +#define INLINE_BLOB_CA "ca" +#define INLINE_BLOB_CERT "cert" +#define INLINE_BLOB_KEY "key" +#define INLINE_BLOB_PKCS12 "pkcs12" +#define INLINE_BLOB_SECRET "secret" +#define INLINE_BLOB_TLS_AUTH "tls-auth" +#define INLINE_BLOB_TLS_CRYPT "tls-crypt" + +const char *_nmovpn_test_temp_path = NULL; + +/*****************************************************************************/ + +static const char * +_arg_is_set (const char *value) +{ + return (value && value[0]) ? value : NULL; +} + +static void +_auto_free_gstring_p (GString **ptr) +{ + if (*ptr) + g_string_free (*ptr, TRUE); +} + +static gboolean +_is_utf8 (const char *str) +{ + g_return_val_if_fail (str, FALSE); + + return g_utf8_validate (str, -1, NULL); +} + +/*****************************************************************************/ + +static void +__attribute__((__format__ (__printf__, 3, 4))) +setting_vpn_add_data_item_v (NMSettingVpn *setting, + const char *key, + const char *format, + ...) +{ + char buf[256]; + char *s; + int l; + va_list ap, ap2; + + g_return_if_fail (NM_IS_SETTING_VPN (setting)); + g_return_if_fail (key && key[0]); + + /* let's first try with a stack allocated buffer, + * it's large enough for most cases. */ + va_start (ap, format); + va_copy (ap2, ap); + l = g_vsnprintf (buf, sizeof (buf), format, ap2); + va_end (ap2); + + if (l < sizeof (buf) - 1) { + va_end (ap); + nm_setting_vpn_add_data_item (setting, key, buf); + return; + } + + s = g_strdup_vprintf (format, ap); + va_end (ap); + nm_setting_vpn_add_data_item (setting, key, s); + g_free (s); +} + +static void +setting_vpn_add_data_item_int64 (NMSettingVpn *setting, + const char *key, + gint64 value) +{ + setting_vpn_add_data_item_v (setting, key, "%"G_GINT64_FORMAT, value); +} + +static void +setting_vpn_add_data_item (NMSettingVpn *setting, + const char *key, + const char *value) +{ + g_return_if_fail (NM_IS_SETTING_VPN (setting)); + g_return_if_fail (key && key[0]); + g_return_if_fail (value && value[0]); + g_return_if_fail (_is_utf8 (value)); + + nm_setting_vpn_add_data_item (setting, key, value); +} + +static void +setting_vpn_add_data_item_utf8safe (NMSettingVpn *setting, + const char *key, + const char *value) +{ + gs_free char *s = NULL; + + g_return_if_fail (NM_IS_SETTING_VPN (setting)); + g_return_if_fail (key && key[0]); + g_return_if_fail (value && value[0]); + + nm_setting_vpn_add_data_item (setting, key, + nm_utils_str_utf8safe_escape (value, 0, &s)); +} + +static void +setting_vpn_add_data_item_path (NMSettingVpn *setting, + const char *key, + const char *value) +{ + setting_vpn_add_data_item_utf8safe (setting, key, value); +} + +static gboolean +setting_vpn_eq_data_item_utf8safe (NMSettingVpn *setting, + const char *key, + const char *expected_value) +{ + gs_free char *s_free = NULL; + const char *s; + + s = nm_setting_vpn_get_data_item (setting, key); + if (!s) + return expected_value == NULL; + + if (!expected_value) + return FALSE; + return nm_streq (expected_value, nm_utils_str_utf8safe_unescape (s, &s_free)); +} + +/*****************************************************************************/ + +static gboolean +args_params_check_nargs_minmax (const char **params, guint nargs_min, guint nargs_max, char **out_error) +{ + guint nargs; + + g_return_val_if_fail (params, FALSE); + g_return_val_if_fail (params[0], FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + nargs = g_strv_length ((char **) params) - 1; + + if (nargs < nargs_min || nargs > nargs_max) { + if (nargs_min != nargs_max) { + *out_error = g_strdup_printf (ngettext ("option %s expects between %u and %u argument", + "option %s expects between %u and %u arguments", + nargs_max), + params[0], nargs_min, nargs_max); + } else if (nargs_min == 0) + *out_error = g_strdup_printf (_("option %s expects no arguments"), params[0]); + else { + *out_error = g_strdup_printf (ngettext ("option %s expects exactly one argument", + "option %s expects exactly %u arguments", + nargs_min), + params[0], nargs_min); + } + return FALSE; + } + return TRUE; +} + +static gboolean +args_params_check_nargs_n (const char **params, guint nargs, char **out_error) +{ + return args_params_check_nargs_minmax (params, nargs, nargs, out_error); +} + +static gboolean +args_params_check_arg_nonempty (const char **params, + guint n_param, + const char *argument_name, + char **out_error) +{ + g_return_val_if_fail (params, FALSE); + g_return_val_if_fail (params[0], FALSE); + g_return_val_if_fail (n_param > 0 && n_param < g_strv_length ((char **) params), FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + if (params[n_param][0] == '\0') { + if (argument_name) + *out_error = g_strdup_printf (_("argument %s of “%s” can not be empty"), argument_name, params[0]); + else + *out_error = g_strdup_printf (_("argument of “%s” can not be empty"), params[0]); + return FALSE; + } + return TRUE; +} + +static gboolean +args_params_check_arg_utf8 (const char **params, + guint n_param, + const char *argument_name, + char **out_error) +{ + if (!args_params_check_arg_nonempty (params, n_param, argument_name, out_error)) + return FALSE; + if (!_is_utf8 (params[n_param])) { + if (argument_name) + *out_error = g_strdup_printf (_("argument %s of “%s” must be UTF-8 encoded"), argument_name, params[0]); + else + *out_error = g_strdup_printf (_("argument of “%s” must be UTF-8 encoded"), params[0]); + return FALSE; + } + return TRUE; +} + +static gboolean +args_params_parse_int64 (const char **params, + guint n_param, + gint64 min, + gint64 max, + gint64 *out, + char **out_error) +{ + gint64 v; + + g_return_val_if_fail (params, FALSE); + g_return_val_if_fail (params[0], FALSE); + g_return_val_if_fail (n_param > 0, FALSE); + g_return_val_if_fail (n_param < g_strv_length ((char **) params), FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + v = _nm_utils_ascii_str_to_int64 (params[n_param], 10, min, max, -1); + if (errno) { + *out_error = g_strdup_printf (_("invalid %uth argument to “%s” where number expected"), + n_param, + params[0]); + return FALSE; + } + *out = v; + return TRUE; +} + +static gboolean +args_params_parse_port (const char **params, guint n_param, gint64 *out, char **out_error) +{ + return args_params_parse_int64 (params, n_param, 1, 65535, out, out_error); +} + +static gboolean +args_params_parse_ip4 (const char **params, + guint n_param, + gboolean ovpn_extended_format, + in_addr_t *out, + char **out_error) +{ + in_addr_t a; + const char *p; + + g_return_val_if_fail (params, FALSE); + g_return_val_if_fail (params[0], FALSE); + g_return_val_if_fail (n_param > 0, FALSE); + g_return_val_if_fail (n_param < g_strv_length ((char **) params), FALSE); + g_return_val_if_fail (out, FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + if (inet_pton (AF_INET, params[n_param], &a) == 1) { + *out = a; + return TRUE; + } + + if ( ovpn_extended_format + && NM_IN_STRSET (params[n_param], "vpn_gateway", "net_gateway", "remote_host")) { + /* we don't support these special destinations, as they currently cannot be expressed + * in a connection. */ + *out_error = g_strdup_printf (_("unsupported %uth argument %s to “%s”"), + n_param, + params[n_param], + params[0]); + return FALSE; + } + + if ( ovpn_extended_format + && params[n_param] + && strlen (params[n_param]) <= 255) { + for (p = params[n_param]; *p; p++) { + if (NM_IN_SET (*p, '-', '.')) + continue; + if (g_ascii_isalnum (*p)) + continue; + goto not_dns; + } + /* we also don't support specifing a FQDN. */ + *out_error = g_strdup_printf (_("unsupported %uth argument to “%s” which looks like a FQDN but only IPv4 address supported"), + n_param, + params[0]); + return FALSE; + } + +not_dns: + *out_error = g_strdup_printf (_("invalid %uth argument to “%s” where IPv4 address expected"), + n_param, + params[0]); + return FALSE; +} + +static gboolean +args_params_parse_key_direction (const char **params, + guint n_param, + const char **out_key_direction, + char **out_error) +{ + g_return_val_if_fail (params, FALSE); + g_return_val_if_fail (params[0], FALSE); + g_return_val_if_fail (n_param > 0, FALSE); + g_return_val_if_fail (n_param < g_strv_length ((char **) params), FALSE); + g_return_val_if_fail (out_key_direction, FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + /* params will be freed in the next loop iteration. "internalize" the values. */ + if (nm_streq (params[n_param], "0")) + *out_key_direction = "0"; + else if (nm_streq (params[n_param], "1")) + *out_key_direction = "1"; + else { + *out_error = g_strdup_printf (_("invalid %uth key-direction argument to “%s”"), n_param, params[0]); + return FALSE; + } + return TRUE; +} + +static char * +args_params_error_message_invalid_arg (const char **params, guint n_param) +{ + g_return_val_if_fail (params, NULL); + g_return_val_if_fail (params[0], NULL); + g_return_val_if_fail (n_param > 0, FALSE); + g_return_val_if_fail (n_param < g_strv_length ((char **) params), FALSE); + + return g_strdup_printf (_("invalid %uth argument to “%s”"), n_param, params[0]); +} + +/*****************************************************************************/ + +static char +_ch_step_1 (const char **str, gsize *len) +{ + char ch; + g_assert (str); + g_assert (len && *len > 0); + + ch = (*str)[0]; + + (*str)++; + (*len)--; + return ch; +} + +static void +_ch_skip_over_leading_whitespace (const char **str, gsize *len) +{ + while (*len > 0 && g_ascii_isspace ((*str)[0])) + _ch_step_1 (str, len); +} + +static void +_strbuf_append_c (char **buf, gsize *len, char ch) +{ + nm_assert (buf); + nm_assert (len); + + g_return_if_fail (*len > 0); + + (*buf)[0] = ch; + (*len)--; + *buf = &(*buf)[1]; +} + +static gboolean +args_parse_line (const char *line, + gsize line_len, + const char ***out_p, + char **out_error) +{ + gs_unref_array GArray *index = NULL; + gs_free char *str_buf_orig = NULL; + char *str_buf; + gsize str_buf_len; + gsize i; + const char *line_start = line; + char **data; + char *pdata; + + /* reimplement openvpn's parse_line(). */ + + g_return_val_if_fail (line, FALSE); + g_return_val_if_fail (out_p && !*out_p, FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + *out_p = NULL; + + /* we expect no newline during the first line_len chars. */ + for (i = 0; i < line_len; i++) { + if (NM_IN_SET (line[i], '\0', '\n')) + g_return_val_if_reached (FALSE); + } + + /* if the line ends with '\r', drop that right way (covers \r\n). */ + if (line_len > 0 && line[line_len - 1] == '\r') + line_len--; + + /* skip over leading space. */ + _ch_skip_over_leading_whitespace (&line, &line_len); + + if (line_len == 0) + return TRUE; + + if (NM_IN_SET (line[0], ';', '#')) { + /* comment. Note that als openvpn allows for leading spaces + * *before* the comment starts */ + return TRUE; + } + + /* the maximum required buffer is @line_len+1 characters. We don't produce + * *more* characters then given in the input (plus trailing '\0'). */ + str_buf_len = line_len + 1; + str_buf_orig = g_malloc (str_buf_len); + str_buf = str_buf_orig; + + index = g_array_new (FALSE, FALSE, sizeof (gsize)); + + for (;;) { + char quote, ch0; + gssize word_start = line - line_start; + gsize index_i; + + index_i = str_buf - str_buf_orig; + g_array_append_val (index, index_i); + + switch ((ch0 = _ch_step_1 (&line, &line_len))) { + case '"': + case '\'': + quote = ch0; + + while (line_len > 0 && line[0] != quote) { + if (quote == '"' && line[0] == '\\') { + _ch_step_1 (&line, &line_len); + if (line_len <= 0) + break; + } + _strbuf_append_c (&str_buf, &str_buf_len, _ch_step_1 (&line, &line_len)); + } + + if (line_len <= 0) { + *out_error = g_strdup_printf (_("unterminated %s at position %lld"), + quote == '"' ? _("double quote") : _("single quote"), + (long long) word_start); + return FALSE; + } + + /* openvpn terminates parsing of quoted paramaters after the closing quote. + * E.g. "'a'b" gives "a", "b". */ + _ch_step_1 (&line, &line_len); + break; + default: + /* once openvpn encounters a non-quoted word, it doesn't consider quoting + * inside the word. + * E.g. "a'b'" gives "a'b'". */ + for (;;) { + if (ch0 == '\\') { + if (line_len <= 0) { + *out_error = g_strdup_printf (_("trailing escaping backslash at position %lld"), + (long long) word_start); + return FALSE; + } + ch0 = _ch_step_1 (&line, &line_len); + } + _strbuf_append_c (&str_buf, &str_buf_len, ch0); + if (line_len <= 0) + break; + ch0 = _ch_step_1 (&line, &line_len); + if (g_ascii_isspace (ch0)) + break; + } + break; + } + + /* the current word is complete.*/ + _strbuf_append_c (&str_buf, &str_buf_len, '\0'); + _ch_skip_over_leading_whitespace (&line, &line_len); + + if (line_len <= 0) + break; + + if (NM_IN_SET (line[0], ';', '#')) { + /* comments are allowed to start at the beginning of the next word. */ + break; + } + } + + str_buf_len = str_buf - str_buf_orig; + + /* pack the result in a strv array */ + data = g_malloc ((sizeof (const char *) * (index->len + 1)) + str_buf_len); + + pdata = (char *) &data[index->len + 1]; + memcpy (pdata, str_buf_orig, str_buf_len); + + for (i = 0; i < index->len; i++) + data[i] = &pdata[g_array_index (index, gsize, i)]; + data[i] = NULL; + + *out_p = (const char **) data; + + return TRUE; +} + +gboolean +_nmovpn_test_args_parse_line (const char *line, + gsize line_len, + const char ***out_p, + char **out_error) +{ + return args_parse_line (line, line_len, out_p, out_error); +} + +static gboolean +args_next_line (const char **content, + gsize *content_len, + const char **cur_line, + gsize *cur_line_len, + const char **cur_line_delimiter) +{ + const char *s; + gsize l, offset; + + g_return_val_if_fail (content, FALSE); + g_return_val_if_fail (content_len, FALSE); + g_return_val_if_fail (cur_line, FALSE); + g_return_val_if_fail (cur_line_len, FALSE); + g_return_val_if_fail (cur_line_delimiter, FALSE); + + l = *content_len; + + if (l <= 0) + return FALSE; + + *cur_line = s = *content; + + while (l > 0 && !NM_IN_SET (s[0], '\0', '\n')) + _ch_step_1 (&s, &l); + + offset = s - *content; + *cur_line_len = offset; + + /* cur_line_delimiter will point to a (static) string + * containing the dropped character. + * Or NULL if we reached the end of content. */ + if (l > 0) { + if (s[0] == '\0') + *cur_line_delimiter = "\0"; + else + *cur_line_delimiter = "\n"; + offset++; + } else + *cur_line_delimiter = NULL; + + *content_len -= offset; + *content += offset; + + return TRUE; +} + +/*****************************************************************************/ + +static gboolean +parse_http_proxy_auth (const char *default_path, + const char *file, + char **out_user, + char **out_pass, + char **out_error) +{ + gs_free char *file_free = NULL; + gs_free char *contents = NULL; + char **lines, **iter; + + g_return_val_if_fail (out_user && !*out_user, FALSE); + g_return_val_if_fail (out_pass && !*out_pass, FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + if (!file || + NM_IN_STRSET (file, "stdin", "auto")) + return TRUE; + + if (!g_path_is_absolute (file)) { + file_free = g_build_path ("/", default_path, file, NULL); + file = file_free; + } + + /* Grab user/pass from authfile */ + if (!g_file_get_contents (file, &contents, NULL, NULL)) { + *out_error = g_strdup_printf (_("unable to read HTTP proxy auth file")); + return FALSE; + } + + lines = g_strsplit_set (contents, "\n\r", 0); + for (iter = lines; iter && *iter; iter++) { + if ((*iter)[0] == '\0') + continue; + if (!*out_user) + *out_user = g_strdup (g_strstrip (*iter)); + else if (!*out_pass) { + *out_pass = g_strdup (g_strstrip (*iter)); + break; + } + } + g_strfreev (lines); + + if (!*out_user || !*out_pass) { + *out_error = g_strdup_printf (_("cannot read user/password from HTTP proxy auth file")); + g_clear_pointer (out_user, g_free); + g_clear_pointer (out_pass, g_free); + return FALSE; + } + + if ( !_is_utf8 (*out_user) + || !_is_utf8 (*out_pass)) { + *out_error = g_strdup_printf (_("user/password from HTTP proxy auth file must be UTF-8 encoded")); + g_clear_pointer (out_user, g_free); + g_clear_pointer (out_pass, g_free); + return FALSE; + } + return TRUE; +} + +/*****************************************************************************/ + +typedef struct { + char *token; + char *path; + gsize token_start_line; + GString *blob_data; + const char *key; +} InlineBlobData; + +static void +inline_blob_data_free (InlineBlobData *data) +{ + g_return_if_fail (data); + + g_free (data->token); + g_free (data->path); + g_string_free (data->blob_data, TRUE); + g_slice_free (InlineBlobData, data); +} + +static char * +inline_blob_construct_path (const char *basename, const char *token) +{ + gs_free char *f_filename = NULL; + + g_return_val_if_fail (basename, NULL); + g_return_val_if_fail (token && token[0], NULL); + + /* Construct file name to write the data in */ + f_filename = g_strdup_printf ("%s-%s.pem", basename, token); + + if (_nmovpn_test_temp_path) + return g_build_filename (_nmovpn_test_temp_path, f_filename, NULL); + + return g_build_filename (g_get_home_dir (), ".cert/nm-openvpn", f_filename, NULL); +} + +static gboolean +inline_blob_mkdir_parents (const InlineBlobData *data, const char *filepath, char **out_error) +{ + gs_free char *dirname = NULL; + + g_return_val_if_fail (filepath && filepath[0], FALSE); + g_return_val_if_fail (out_error && !*out_error, FALSE); + + dirname = g_path_get_dirname (filepath); + if (NM_IN_STRSET (dirname, "/", ".")) + return TRUE; + + if (g_file_test (dirname, G_FILE_TEST_IS_DIR)) + return TRUE; + + if (g_file_test (dirname, G_FILE_TEST_EXISTS)) { + *out_error = g_strdup_printf (_("“%s” is not a directory"), dirname); + return FALSE; + } + + if (!inline_blob_mkdir_parents (data, dirname, out_error)) + return FALSE; + + if (mkdir (dirname, 0755) < 0) { + *out_error = g_strdup_printf (_("cannot create “%s” directory"), dirname); + return FALSE; + } + + return TRUE; +} + +static gboolean +inline_blob_write_out (const InlineBlobData *data, GError **error) +{ + mode_t saved_umask; + + if (!_nmovpn_test_temp_path) { + gs_free char *err_msg = NULL; + + /* in test mode we don't create the certificate directory. */ + if (!inline_blob_mkdir_parents (data, data->path, &err_msg)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FAILED, + _("cannot write <%s> blob from line %ld to file (%s)"), + data->token, + (long) data->token_start_line, + err_msg); + return FALSE; + } + } + + saved_umask = umask (S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + + /* The file is written with the default umask. Whether that is safe enough + * to protect (potentally) private data or allows the openvpn service to + * access the file later on is left as exercise for the user. */ + if (!g_file_set_contents (data->path, data->blob_data->str, data->blob_data->len, NULL)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FAILED, + _("cannot write <%s> blob from line %ld to file “%s”"), + data->token, + (long) data->token_start_line, + data->path); + umask (saved_umask); + return FALSE; + } + + umask (saved_umask); + return TRUE; +} + +/*****************************************************************************/ + +NMConnection * +do_import (const char *path, const char *contents, gsize contents_len, GError **error) +{ + gs_unref_object NMConnection *connection_free = NULL; + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingIPConfig *s_ip4; + NMSettingVpn *s_vpn; + const char *cur_line, *cur_line_delimiter; + gsize cur_line_len; + gsize contents_cur_line; + gboolean have_client = FALSE, have_remote = FALSE; + gboolean have_pass = FALSE, have_sk = FALSE; + const char *ctype = NULL; + gs_free char *basename = NULL; + gs_free char *default_path = NULL; + char *tmp, *tmp2; + const char *ta_direction = NULL, *secret_direction = NULL; + gboolean allow_ta_direction = FALSE, allow_secret_direction = FALSE; + gboolean have_certs, have_ca; + GSList *inline_blobs = NULL, *sl_iter; + + g_return_val_if_fail (!error || !*error, NULL); + + connection = nm_simple_connection_new (); + connection_free = connection; + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_con)); + s_ip4 = NM_SETTING_IP_CONFIG (nm_setting_ip4_config_new ()); + nm_connection_add_setting (connection, NM_SETTING (s_ip4)); + g_object_set (s_ip4, NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL); + s_vpn = NM_SETTING_VPN (nm_setting_vpn_new ()); + g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, NM_VPN_SERVICE_TYPE_OPENVPN, NULL); + nm_connection_add_setting (connection, NM_SETTING (s_vpn)); + + /* Get the default path for ca, cert, key file, these files maybe + * in same path with the configuration file */ + if (g_path_is_absolute (path)) + default_path = g_path_get_dirname (path); + else { + tmp = g_get_current_dir (); + tmp2 = g_path_get_dirname (path); + default_path = g_build_filename (tmp, tmp2, NULL); + g_free (tmp); + g_free (tmp2); + } + + basename = g_path_get_basename (path); + tmp = strrchr (basename, '.'); + if (tmp) + *tmp = '\0'; + g_object_set (s_con, NM_SETTING_CONNECTION_ID, basename, NULL); + + if (strncmp (contents, "\xEF\xBB\xBF", 3) == 0) { + /* skip over UTF-8 BOM */ + contents += 3; + contents_len -= 3; + } + + contents_cur_line = 0; + while (args_next_line (&contents, + &contents_len, + &cur_line, + &cur_line_len, + &cur_line_delimiter)) { + gs_free const char **params = NULL; + char *line_error = NULL; + gint64 v_int64; + + contents_cur_line++; + + if (!args_parse_line (cur_line, cur_line_len, ¶ms, &line_error)) + goto handle_line_error; + + if (!params) { + /* empty line of comments. */ + continue; + } + + g_assert (params[0]); + + /* allow for a leading double-dash and skip over it (bypass_doubledash). */ + if (g_str_has_prefix (params[0], "--")) + params[0] = ¶ms[0][2]; + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_CLIENT, NMV_OVPN_TAG_TLS_CLIENT)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; + have_client = TRUE; + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_KEY_DIRECTION)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_key_direction (params, 1, &ta_direction, &line_error)) + goto handle_line_error; + secret_direction = ta_direction; + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_DEV)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_nonempty (params, 1, NULL, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_utf8safe (s_vpn, NM_OPENVPN_KEY_DEV, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_DEV_TYPE)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!NM_IN_STRSET (params[1], "tun", "tap")) { + line_error = args_params_error_message_invalid_arg (params, 1); + goto handle_line_error; + } + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_DEV_TYPE, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PROTO)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + /* Valid parameters are "udp", "tcp-client" and "tcp-server". + * 'tcp' isn't technically valid, but it used to be accepted so + * we'll handle it here anyway. + */ + if (nm_streq (params[1], "udp")) { + /* ignore; udp is default */ + } else if (NM_IN_STRSET (params[1], "tcp-client", "tcp-server", "tcp")) + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, "yes"); + else { + line_error = args_params_error_message_invalid_arg (params, 1); + goto handle_line_error; + } + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_MSSFIX)) { + if (!args_params_check_nargs_minmax (params, 0, 1, &line_error)) + goto handle_line_error; + if (params[1]) { + if (!args_params_parse_int64 (params, 1, 1, G_MAXINT32, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_MSSFIX, v_int64); + } else + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_MSSFIX, "yes"); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_MTU_DISC)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!NM_IN_STRSET (params[1], "no", "maybe", "yes")) { + line_error = g_strdup_printf (_("unsupported mtu-disc argument")); + goto handle_line_error; + } + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_MTU_DISC, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_NS_CERT_TYPE)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!NM_IN_STRSET (params[1], NM_OPENVPN_NS_CERT_TYPE_CLIENT, NM_OPENVPN_NS_CERT_TYPE_SERVER)) { + line_error = g_strdup_printf (_("invalid option")); + goto handle_line_error; + } + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_NS_CERT_TYPE, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TUN_MTU)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, 0xffff, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_TUNNEL_MTU, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_FRAGMENT)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, 0xffff, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_FRAGMENT_SIZE, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_COMP_LZO)) { + const char *v; + + if (!args_params_check_nargs_minmax (params, 0, 1, &line_error)) + goto handle_line_error; + + v = params[1] ?: "adaptive"; + + if (nm_streq (v, "no")) { + /* old plasma-nm used to set "comp-lzo=no" to mean unset, thus it spoiled + * to "no" option to be used in the connection. Workaround that, by instead + * using "no-by-default" (bgo#769177). */ + v = "no-by-default"; + } else if (!NM_IN_STRSET (v, "yes", "adaptive")) { + line_error = g_strdup_printf (_("unsupported comp-lzo argument")); + goto handle_line_error; + } + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, v); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_FLOAT)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_FLOAT, "yes"); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_RENEG_SEC)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, G_MAXINT, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_MAX_ROUTES)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, 100000000, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_MAX_ROUTES, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_HTTP_PROXY_RETRY, NMV_OVPN_TAG_SOCKS_PROXY_RETRY)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_RETRY, "yes"); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_HTTP_PROXY, NMV_OVPN_TAG_SOCKS_PROXY)) { + const char *proxy_type = NULL; + gint64 port = 0; + gs_free char *user = NULL; + gs_free char *pass = NULL; + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_HTTP_PROXY)) { + proxy_type = "http"; + if (!args_params_check_nargs_minmax (params, 2, 4, &line_error)) + goto handle_line_error; + } else { + proxy_type = "socks"; + if (!args_params_check_nargs_minmax (params, 1, 3, &line_error)) + goto handle_line_error; + } + + if (!args_params_check_arg_utf8 (params, 1, "service", &line_error)) + goto handle_line_error; + + if (params[2]) { + if (!args_params_parse_port (params, 2, &port, &line_error)) + goto handle_line_error; + + if (params[3]) { + if (!parse_http_proxy_auth (default_path, params[3], &user, &pass, &line_error)) + goto handle_line_error; + } + } + + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE, proxy_type); + + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER, params[1]); + if (port > 0) + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_PROXY_PORT, port); + if (user) + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, user); + if (pass) { + nm_setting_vpn_add_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, pass); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_REMOTE)) { + const char *prev; + GString *new_remote; + int port = -1; + gboolean host_has_colon; + struct in6_addr a; + + if (!args_params_check_nargs_minmax (params, 1, 3, &line_error)) + goto handle_line_error; + + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + if (strchr (params[1], ' ')) { + line_error = g_strdup_printf (_("remote cannot contain space")); + goto handle_line_error; + } + if (strchr (params[1], ',')) { + line_error = g_strdup_printf (_("remote cannot contain comma")); + goto handle_line_error; + } + + if (params[2]) { + if (!args_params_parse_port (params, 2, &v_int64, &line_error)) + goto handle_line_error; + port = v_int64; + + if (params[3]) { + if (!NM_IN_STRSET (params[3], NMOVPN_PROTCOL_TYPES)) { + line_error = g_strdup_printf (_("remote expects protocol type like “udp” or “tcp”")); + goto handle_line_error; + } + } + } + + new_remote = g_string_sized_new (64); + + prev = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE); + if (prev) { + g_string_assign (new_remote, prev); + g_string_append (new_remote, ", "); + } + + host_has_colon = (strchr (params[1], ':') != NULL); + if ( host_has_colon + && inet_pton (AF_INET6, params[1], &a) == 1) { + /* need to escape the host. */ + g_string_append_printf (new_remote, "[%s]", params[1]); + } else + g_string_append (new_remote, params[1]); + + if (params[2]) { + g_string_append_printf (new_remote, ":%d", port); + if (params[3]) { + g_string_append_c (new_remote, ':'); + g_string_append (new_remote, params[3]); + } else if (host_has_colon) + g_string_append_c (new_remote, ':'); + } else if (host_has_colon) + g_string_append (new_remote, "::"); + + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE, new_remote->str); + g_string_free (new_remote, TRUE); + + have_remote = TRUE; + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_REMOTE_RANDOM)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM, "yes"); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TUN_IPV6)) { + if (!args_params_check_nargs_n (params, 0, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_TUN_IPV6, "yes"); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PORT, NMV_OVPN_TAG_RPORT)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_port (params, 1, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_PORT, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PING, NMV_OVPN_TAG_PING_EXIT, NMV_OVPN_TAG_PING_RESTART)) { + const char *key = NULL; + + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, G_MAXINT, &v_int64, &line_error)) + goto handle_line_error; + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PING)) + key = NM_OPENVPN_KEY_PING; + else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PING_EXIT)) + key = NM_OPENVPN_KEY_PING_EXIT; + else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PING_RESTART)) + key = NM_OPENVPN_KEY_PING_RESTART; + + setting_vpn_add_data_item_int64 (s_vpn, key, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], + NMV_OVPN_TAG_PKCS12, + NMV_OVPN_TAG_CA, + NMV_OVPN_TAG_CERT, + NMV_OVPN_TAG_KEY, + NMV_OVPN_TAG_SECRET, + NMV_OVPN_TAG_TLS_AUTH, + NMV_OVPN_TAG_TLS_CRYPT)) { + const char *file; + gs_free char *file_free = NULL; + gboolean can_have_direction; + const char *s_direction = NULL; + + can_have_direction = NM_IN_STRSET (params[0], + NMV_OVPN_TAG_SECRET, + NMV_OVPN_TAG_TLS_AUTH); + + if (!args_params_check_nargs_minmax (params, 1, can_have_direction ? 2 : 1, &line_error)) + goto handle_line_error; + + if (!args_params_check_arg_nonempty (params, 1, NULL, &line_error)) + goto handle_line_error; + file = params[1]; + + if (params[2]) { + if (!args_params_parse_key_direction (params, 2, &s_direction, &line_error)) + goto handle_line_error; + } + + if (!g_path_is_absolute (file)) + file = file_free = g_build_filename (default_path, file, NULL); + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_PKCS12)) { + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CA, file); + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CERT, file); + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_KEY, file); + } else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_CA)) + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CA, file); + else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_CERT)) + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CERT, file); + else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_KEY)) + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_KEY, file); + else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_SECRET)) { + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, file); + if (s_direction) + secret_direction = s_direction; + allow_secret_direction = TRUE; + have_sk = TRUE; + } else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TLS_AUTH)) { + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_TA, file); + if (s_direction) + ta_direction = s_direction; + allow_ta_direction = TRUE; + } else if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TLS_CRYPT)) + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_TLS_CRYPT, file); + else + g_assert_not_reached (); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_CIPHER)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_CIPHER, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TLS_CIPHER)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_TLS_CIPHER, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_KEEPALIVE)) { + gint64 v2; + + if (!args_params_check_nargs_n (params, 2, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 0, G_MAXINT, &v_int64, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 2, 0, G_MAXINT, &v2, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_PING, v_int64); + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_PING_RESTART, v2); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_KEYSIZE)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_parse_int64 (params, 1, 1, 65535, &v_int64, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item_int64 (s_vpn, NM_OPENVPN_KEY_KEYSIZE, v_int64); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TLS_REMOTE)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_TLS_REMOTE, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_VERIFY_X509_NAME)) { + const char *type = NM_OPENVPN_VERIFY_X509_NAME_TYPE_SUBJECT; + gs_free char *item = NULL; + + if (!args_params_check_nargs_minmax (params, 1, 2, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + + if (params[2]) { + if (!NM_IN_STRSET (params[2], + NM_OPENVPN_VERIFY_X509_NAME_TYPE_SUBJECT, + NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME, + NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME_PREFIX)) { + line_error = g_strdup_printf (_("invalid verify-x509-name type")); + goto handle_line_error; + } + + type = params[2]; + } + + item = g_strdup_printf ("%s:%s", type, params[1]); + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_VERIFY_X509_NAME, item); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_REMOTE_CERT_TLS)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!NM_IN_STRSET (params[1], NM_OPENVPN_REM_CERT_TLS_CLIENT, NM_OPENVPN_REM_CERT_TLS_SERVER)) { + line_error = g_strdup_printf (_("invalid option")); + goto handle_line_error; + } + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_IFCONFIG)) { + if (!args_params_check_nargs_n (params, 2, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, "local", &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 2, "remote", &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, params[1]); + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, params[2]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_AUTH_USER_PASS)) { + if (!args_params_check_nargs_minmax (params, 0, 1, &line_error)) + goto handle_line_error; + have_pass = TRUE; + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_AUTH)) { + if (!args_params_check_nargs_n (params, 1, &line_error)) + goto handle_line_error; + if (!args_params_check_arg_utf8 (params, 1, NULL, &line_error)) + goto handle_line_error; + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_AUTH, params[1]); + continue; + } + + if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_ROUTE)) { + in_addr_t network; + in_addr_t gateway = 0; + guint32 prefix = 32; + gint64 metric = -1; + + if (!args_params_check_nargs_minmax (params, 1, 4, &line_error)) + goto handle_line_error; + + if (!args_params_parse_ip4 (params, 1, TRUE, &network, &line_error)) + goto handle_line_error; + + if (params[2]) { + in_addr_t netmask; + + if (!args_params_parse_ip4 (params, 2, FALSE, &netmask, &line_error)) + goto handle_line_error; + prefix = nm_utils_ip4_netmask_to_prefix (netmask); + + if (params[3]) { + if (!args_params_parse_ip4 (params, 3, TRUE, &gateway, &line_error)) + goto handle_line_error; + if (params[4]) { + if (!args_params_parse_int64 (params, 4, 0, G_MAXUINT32, &v_int64, &line_error)) + goto handle_line_error; + metric = (guint32) v_int64; + } + } + } + + if (prefix == 0 && network == 0) { + /* the default-route cannot be specified as normal route in NMSettingIPConfig. + * Just set never-default=FALSE (which is already the default). */ + g_object_set (s_ip4, + NM_SETTING_IP_CONFIG_NEVER_DEFAULT, + FALSE, + NULL); + continue; + } + + { +#ifdef NM_VPN_OLD + NMIP4Route *route; + + route = nm_ip4_route_new (); + nm_ip4_route_set_dest (route, network); + nm_ip4_route_set_prefix (route, prefix); + nm_ip4_route_set_next_hop (route, gateway); + if (metric >= 0) + nm_ip4_route_set_metric (route, metric); + nm_setting_ip4_config_add_route (s_ip4, route); + nm_ip4_route_unref (route); +#else + NMIPRoute *route; + + route = nm_ip_route_new_binary (AF_INET, &network, prefix, params[3] ? &gateway : NULL, metric, NULL); + nm_setting_ip_config_add_route (s_ip4, route); + nm_ip_route_unref (route); +#endif + } + } + + if (params[0][0] == '<' && params[0][strlen (params[0]) - 1] == '>') { + gs_free char *token = g_strndup (¶ms[0][1], strlen (params[0]) - 2); + gs_free char *end_token = NULL; + gsize end_token_len; + gsize my_contents_cur_line = contents_cur_line; + gboolean is_base64 = FALSE; + char *f_path; + const char *key; + GString *blob_data; + InlineBlobData *inline_blob_data; + + if (nm_streq (token, INLINE_BLOB_CA)) + key = NM_OPENVPN_KEY_CA; + else if (nm_streq (token, INLINE_BLOB_CERT)) + key = NM_OPENVPN_KEY_CERT; + else if (nm_streq (token, INLINE_BLOB_KEY)) + key = NM_OPENVPN_KEY_KEY; + else if (nm_streq (token, INLINE_BLOB_PKCS12)) { + is_base64 = TRUE; + key = NULL; + } else if (nm_streq (token, INLINE_BLOB_TLS_CRYPT)) + key = NM_OPENVPN_KEY_TLS_CRYPT; + else if (nm_streq (token, INLINE_BLOB_TLS_AUTH)) { + key = NM_OPENVPN_KEY_TA; + allow_ta_direction = TRUE; + } else if (nm_streq (token, INLINE_BLOB_SECRET)) { + key = NM_OPENVPN_KEY_STATIC_KEY; + allow_secret_direction = TRUE; + } else { + line_error = g_strdup_printf (_("unsupported blob/xml element")); + goto handle_line_error; + } + + end_token = g_strdup_printf ("", token); + end_token_len = strlen (end_token); + + blob_data = g_string_new (NULL); + + while (args_next_line (&contents, + &contents_len, + &cur_line, + &cur_line_len, + &cur_line_delimiter)) { + my_contents_cur_line++; + + /* skip over trailing space like openvpn does. */ + _ch_skip_over_leading_whitespace (&cur_line, &cur_line_len); + + if (!strncmp (cur_line, end_token, end_token_len)) { + end_token_len = 0; + break; + } + + g_string_append_len (blob_data, cur_line, cur_line_len); + if (cur_line_delimiter) + g_string_append_c (blob_data, cur_line_delimiter[0]); + } + if (end_token_len) { + line_error = g_strdup_printf (_("unterminated blob element <%s>"), token); + g_string_free (blob_data, TRUE); + goto handle_line_error; + } + + if (is_base64) { + gs_free guint8 *d = NULL; + gsize l; + + d = g_base64_decode (blob_data->str, &l); + g_string_truncate (blob_data, 0); + g_string_append_len (blob_data, (const char *) d, l); + } + + /* the latest cert wins... */ + for (sl_iter = inline_blobs; sl_iter; sl_iter = sl_iter->next) { + InlineBlobData *d = sl_iter->data; + + if (nm_streq (d->token, token)) { + inline_blobs = g_slist_delete_link (inline_blobs, sl_iter); + inline_blob_data_free (d); + break; + } + } + + f_path = inline_blob_construct_path (basename, token); + + inline_blob_data = g_slice_new (InlineBlobData); + inline_blob_data->blob_data = blob_data; + inline_blob_data->token_start_line = contents_cur_line; + inline_blob_data->path = f_path; + inline_blob_data->token = token; + inline_blob_data->key = key; + token = NULL; + + inline_blobs = g_slist_prepend (inline_blobs, inline_blob_data); + contents_cur_line = my_contents_cur_line; + + if (key) + setting_vpn_add_data_item_path (s_vpn, key, f_path); + else { + nm_assert (nm_streq (token, INLINE_BLOB_PKCS12)); + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CA, f_path); + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_CERT, f_path); + setting_vpn_add_data_item_path (s_vpn, NM_OPENVPN_KEY_KEY, f_path); + } + continue; + } + + /* TODO: currently we ignore any unknown options and skip over them. */ + continue; + +handle_line_error: + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_INVALID, + _("configuration error: %s (line %ld)"), + line_error ? : _("unknown or unsupported option"), + (long) contents_cur_line); + g_free (line_error); + goto out_error; + } + + if (allow_secret_direction && secret_direction) + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, secret_direction); + if (allow_ta_direction && ta_direction) + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, ta_direction); + + if (!have_client && !have_sk) { + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("The file to import wasn’t a valid OpenVPN client configuration")); + goto out_error; + } + + if (!have_remote) { + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("The file to import wasn’t a valid OpenVPN configure (no remote)")); + goto out_error; + } + + have_certs = FALSE; + have_ca = FALSE; + + if (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CA)) + have_ca = TRUE; + + if ( have_ca + && nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CERT) + && nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY)) + have_certs = TRUE; + + /* Determine connection type */ + if (have_pass) { + if (have_certs) + ctype = NM_OPENVPN_CONTYPE_PASSWORD_TLS; + else if (have_ca) + ctype = NM_OPENVPN_CONTYPE_PASSWORD; + } else if (have_certs) { + ctype = NM_OPENVPN_CONTYPE_TLS; + } else if (have_sk) + ctype = NM_OPENVPN_CONTYPE_STATIC_KEY; + + if (!ctype) + ctype = NM_OPENVPN_CONTYPE_TLS; + + setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, ctype); + + /* Default secret flags to be agent-owned */ + if (have_pass) { + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_PASSWORD, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + if (have_certs) { + gs_free char *key_path_free = NULL; + const char *key_path; + + key_path = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + if (is_encrypted (nm_utils_str_utf8safe_unescape (key_path, &key_path_free))) { + /* If there should be a private key password, default it to + * being agent-owned. + */ + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_CERTPASS, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + } + + inline_blobs = g_slist_reverse (inline_blobs); + for (sl_iter = inline_blobs; sl_iter; sl_iter = sl_iter->next) { + const InlineBlobData *data = sl_iter->data; + + /* Check whether the setting was not overwritten by a later entry in the config-file. */ + if (nm_streq (data->token, INLINE_BLOB_PKCS12)) { + if ( !setting_vpn_eq_data_item_utf8safe (s_vpn, NM_OPENVPN_KEY_CA, data->path) + && !setting_vpn_eq_data_item_utf8safe (s_vpn, NM_OPENVPN_KEY_CERT, data->path) + && !setting_vpn_eq_data_item_utf8safe (s_vpn, NM_OPENVPN_KEY_KEY, data->path)) + continue; + } else { + if (!setting_vpn_eq_data_item_utf8safe (s_vpn, data->key, data->path)) + continue; + } + if (!inline_blob_write_out (sl_iter->data, error)) + goto out_error; + } + g_slist_free_full (inline_blobs, (GDestroyNotify) inline_blob_data_free); + + connection_free = NULL; + g_return_val_if_fail (!error || !*error, connection); + return connection; + +out_error: + g_slist_free_full (inline_blobs, (GDestroyNotify) inline_blob_data_free); + g_return_val_if_fail (!error || *error, NULL); + return NULL; +} + +/*****************************************************************************/ + +static const char * +escape_arg (const char *value, char **buf) +{ + const char *s; + char *result, *i_result; + gboolean has_single_quote = FALSE; + gboolean needs_quotation = FALSE; + gsize len; + + nm_assert (value); + nm_assert (buf && !*buf); + + if (value[0] == '\0') + return (*buf = g_strdup ("''")); + + /* check if the string contains only benign characters... */ + len = 0; + for (s = value; s[0]; s++) { + char c = s[0]; + + len++; + if ( (c >= '0' && c <= '9') + || (c >= 'a' && c <= 'z') + || (c >= 'A' && c <= 'Z') + || NM_IN_SET (c, '_', '-', ':', '/')) + continue; + needs_quotation = TRUE; + if (c == '\'') + has_single_quote = TRUE; + } + if (!needs_quotation) + return value; + + if (!has_single_quote) { + result = g_malloc (len + 2 + 1); + result[0] = '\''; + memcpy (&result[1], value, len); + result[1 + len] = '\''; + result[2 + len] = '\0'; + } else { + i_result = result = g_malloc (len * 2 + 3); + *(i_result++) = '"'; + for (s = value; s[0]; s++) { + if (NM_IN_SET (s[0], '\\', '"')) + *(i_result++) = '\\'; + *(i_result++) = s[0]; + } + *(i_result++) = '"'; + *(i_result++) = '\0'; + } + + *buf = result; + return result; +} + +static void +args_write_line_v (GString *f, gsize nargs, const char **args) +{ + gsize i; + gboolean printed = FALSE; + + nm_assert (args); + nm_assert (args[0]); + + for (i = 0; i < nargs; i++) { + gs_free char *tmp = NULL; + + /* NULL is skipped. This is for convenience to specify + * optional arguments. */ + if (!args[i]) + continue; + + if (printed) + g_string_append_c (f, ' '); + printed = TRUE; + g_string_append (f, escape_arg (args[i], &tmp)); + } + g_string_append_c (f, '\n'); +} +#define args_write_line(f, ...) args_write_line_v(f, NM_NARG (__VA_ARGS__), (const char *[]) { __VA_ARGS__ }) + +static void +args_write_line_int64 (GString *f, const char *key, gint64 value) +{ + char tmp[64]; + + args_write_line (f, key, nm_sprintf_buf (tmp, "%"G_GINT64_FORMAT, value)); +} + +static void +args_write_line_setting_value_int (GString *f, + const char *tag_key, + NMSettingVpn *s_vpn, + const char *setting_key) +{ + const char *value; + gint64 v; + + nm_assert (tag_key && tag_key[0]); + nm_assert (NM_IS_SETTING_VPN (s_vpn)); + nm_assert (setting_key && setting_key[0]); + + value = nm_setting_vpn_get_data_item (s_vpn, setting_key); + if (!_arg_is_set (value)) + return; + + v = _nm_utils_ascii_str_to_int64 (value, 10, G_MININT64, G_MAXINT64, 0); + if (errno) + return; + args_write_line_int64 (f, tag_key, v); +} + +static void +args_write_line_setting_value (GString *f, + const char *tag_key, + NMSettingVpn *s_vpn, + const char *setting_key) +{ + const char *value; + + value = nm_setting_vpn_get_data_item (s_vpn, setting_key); + if (_arg_is_set (value)) + args_write_line (f, tag_key, value); +} + +/*****************************************************************************/ + +static GString * +do_export_create (NMConnection *connection, const char *path, GError **error) +{ + NMSettingConnection *s_con; + NMSettingIPConfig *s_ip4; + NMSettingVpn *s_vpn; + const char *value; + const char *gateways; + char **gw_list, **gw_iter; + const char *connection_type; + const char *local_ip = NULL; + const char *remote_ip = NULL; + const char *proxy_type = NULL; + guint i, num; + nm_auto(_auto_free_gstring_p) GString *f = NULL; + + if (!path || !path[0]) { + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("missing path argument")); + return NULL; + } + + s_con = nm_connection_get_setting_connection (connection); + s_vpn = nm_connection_get_setting_vpn (connection); + if (!s_con || !s_vpn) { + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("connection is not a valid OpenVPN connection")); + return NULL; + } + + gateways = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE)); + if (!gateways) { + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("connection was incomplete (missing gateway)")); + return NULL; + } + + connection_type = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE)); + + f = g_string_sized_new (512); + + args_write_line (f, NMV_OVPN_TAG_CLIENT); + + /* 'remote' */ + gw_list = g_strsplit_set (gateways, " \t,", 0); + for (gw_iter = gw_list; gw_iter && *gw_iter; gw_iter++) { + gs_free char *str_free = NULL; + const char *host, *port, *proto; + gssize eidx; + + eidx = nmovpn_remote_parse (*gw_iter, + &str_free, + &host, + &port, + &proto, + NULL); + if (eidx >= 0) + continue; + args_write_line (f, + NMV_OVPN_TAG_REMOTE, + host, + port ?: (proto ? "1194" : NULL), + proto); + } + g_strfreev (gw_list); + + if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM), "yes")) + args_write_line (f, NMV_OVPN_TAG_REMOTE_RANDOM); + + if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TUN_IPV6), "yes")) + args_write_line (f, NMV_OVPN_TAG_TUN_IPV6); + + { + gs_free char *cacert_free = NULL, *user_cert_free = NULL, *private_key_free = NULL; + const char *cacert = NULL, *user_cert = NULL, *private_key = NULL; + + if (NM_IN_STRSET (connection_type, NM_OPENVPN_CONTYPE_TLS, + NM_OPENVPN_CONTYPE_PASSWORD, + NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CA); + if (_arg_is_set (value)) + cacert = nm_utils_str_utf8safe_unescape (value, &cacert_free); + } + + if (NM_IN_STRSET (connection_type, NM_OPENVPN_CONTYPE_TLS, + NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CERT); + if (_arg_is_set (value)) + user_cert = nm_utils_str_utf8safe_unescape (value, &user_cert_free); + + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + if (_arg_is_set (value)) + private_key = nm_utils_str_utf8safe_unescape (value, &private_key_free); + } + + if ( cacert && user_cert && private_key + && nm_streq (cacert, user_cert) && nm_streq (cacert, private_key)) { + /* Handle PKCS#12 (all certs are the same file) */ + args_write_line (f, NMV_OVPN_TAG_PKCS12, cacert); + } else { + if (cacert) + args_write_line (f, NMV_OVPN_TAG_CA, cacert); + if (user_cert) + args_write_line (f, NMV_OVPN_TAG_CERT, user_cert); + if (private_key) + args_write_line (f, NMV_OVPN_TAG_KEY, private_key); + } + } + + if (NM_IN_STRSET (connection_type, NM_OPENVPN_CONTYPE_PASSWORD, + NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + args_write_line (f, NMV_OVPN_TAG_AUTH_USER_PASS); + + if (NM_IN_STRSET (connection_type, NM_OPENVPN_CONTYPE_STATIC_KEY)) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY); + if (_arg_is_set (value)) { + gs_free char *s_free = NULL; + + args_write_line (f, + NMV_OVPN_TAG_SECRET, + nm_utils_str_utf8safe_unescape (value, &s_free), + _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION))); + } + } + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_RENEG_SEC, s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_MAX_ROUTES, s_vpn, NM_OPENVPN_KEY_MAX_ROUTES); + + args_write_line_setting_value (f, NMV_OVPN_TAG_CIPHER, s_vpn, NM_OPENVPN_KEY_CIPHER); + + args_write_line_setting_value (f, NMV_OVPN_TAG_TLS_CIPHER, s_vpn, NM_OPENVPN_KEY_TLS_CIPHER); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_KEYSIZE, s_vpn, NM_OPENVPN_KEY_KEYSIZE); + + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO); + if (value) { + if (nm_streq (value, "no-by-default")) + value = "no"; + args_write_line (f, NMV_OVPN_TAG_COMP_LZO, value); + } + + if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_FLOAT), "yes")) + args_write_line (f, NMV_OVPN_TAG_FLOAT); + + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_MSSFIX); + if (nm_streq0 (value, "yes")) + args_write_line (f, NMV_OVPN_TAG_MSSFIX); + else if (value) + args_write_line_setting_value_int (f, NMV_OVPN_TAG_MSSFIX, s_vpn, NM_OPENVPN_KEY_MSSFIX); + + args_write_line_setting_value (f, NMV_OVPN_TAG_MTU_DISC, s_vpn, NM_OPENVPN_KEY_MTU_DISC); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_TUN_MTU, s_vpn, NM_OPENVPN_KEY_TUNNEL_MTU); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_FRAGMENT, s_vpn, NM_OPENVPN_KEY_FRAGMENT_SIZE); + + { + gs_free char *device_free = NULL; + const char *device_type, *device; + + device_type = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV_TYPE)); + device = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV)); + device = nm_utils_str_utf8safe_unescape (device, &device_free); + args_write_line (f, + NMV_OVPN_TAG_DEV, + device ?: + (device_type ?: + (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TAP_DEV), "yes") + ? "tap" : "tun"))); + if (device_type) + args_write_line (f, NMV_OVPN_TAG_DEV_TYPE, device_type); + } + + args_write_line (f, + NMV_OVPN_TAG_PROTO, + nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP), "yes") + ? "tcp" : "udp"); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_PORT, s_vpn, NM_OPENVPN_KEY_PORT); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_PING, s_vpn, NM_OPENVPN_KEY_PING); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_PING_EXIT, s_vpn, NM_OPENVPN_KEY_PING_EXIT); + + args_write_line_setting_value_int (f, NMV_OVPN_TAG_PING_RESTART, s_vpn, NM_OPENVPN_KEY_PING_RESTART); + + local_ip = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP)); + remote_ip = _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP)); + if (local_ip && remote_ip) + args_write_line (f, NMV_OVPN_TAG_IFCONFIG, local_ip, remote_ip); + + if (NM_IN_STRSET (connection_type, + NM_OPENVPN_CONTYPE_TLS, + NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + const char *x509_name, *key; + + args_write_line_setting_value (f, NMV_OVPN_TAG_REMOTE_CERT_TLS, s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS); + args_write_line_setting_value (f, NMV_OVPN_TAG_NS_CERT_TYPE, s_vpn, NM_OPENVPN_KEY_NS_CERT_TYPE); + args_write_line_setting_value (f, NMV_OVPN_TAG_TLS_REMOTE, s_vpn, NM_OPENVPN_KEY_TLS_REMOTE); + + x509_name = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_VERIFY_X509_NAME); + if (_arg_is_set (x509_name)) { + const char *name; + gs_free char *type = NULL; + + name = strchr (x509_name, ':'); + if (name) { + type = g_strndup (x509_name, name - x509_name); + name++; + } else + name = x509_name; + + args_write_line (f, NMV_OVPN_TAG_VERIFY_X509_NAME, name, type); + } + + key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TA); + if (_arg_is_set (key)) { + gs_free char *s_free = NULL; + args_write_line (f, + NMV_OVPN_TAG_TLS_AUTH, + nm_utils_str_utf8safe_unescape (key, &s_free), + _arg_is_set (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TA_DIR))); + } + + key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TLS_CRYPT); + if (_arg_is_set (key)) { + gs_free char *s_free = NULL; + args_write_line (f, + NMV_OVPN_TAG_TLS_CRYPT, + nm_utils_str_utf8safe_unescape (key, &s_free)); + } + + } + + proxy_type = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE); + if (_arg_is_set (proxy_type)) { + const char *proxy_server; + const char *proxy_port; + const char *proxy_retry; + const char *proxy_username; + const char *proxy_password; + + proxy_server = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER); + proxy_port = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_PORT); + proxy_retry = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_RETRY); + proxy_username = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME); + proxy_password = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD); + + if (nm_streq (proxy_type, "http") && proxy_server) { + char *authfile, *authcontents, *base, *dirname; + + if (!proxy_port) + proxy_port = "8080"; + + /* If there's a username, need to write an authfile */ + base = g_path_get_basename (path); + dirname = g_path_get_dirname (path); + authfile = g_strdup_printf ("%s/%s-httpauthfile", dirname, base); + g_free (base); + g_free (dirname); + + args_write_line (f, + NMV_OVPN_TAG_HTTP_PROXY, + proxy_server, + proxy_port, + proxy_username ? authfile : NULL); + if (proxy_retry && !strcmp (proxy_retry, "yes")) + args_write_line (f, NMV_OVPN_TAG_HTTP_PROXY_RETRY); + + /* Write out the authfile */ + if (proxy_username) { + authcontents = g_strdup_printf ("%s\n%s\n", + proxy_username, + proxy_password ? proxy_password : ""); + g_file_set_contents (authfile, authcontents, -1, NULL); + g_free (authcontents); + } + g_free (authfile); + } else if (nm_streq (proxy_type, "socks") && proxy_server) { + if (!proxy_port) + proxy_port = "1080"; + args_write_line (f, NMV_OVPN_TAG_SOCKS_PROXY, proxy_server, proxy_port); + if (proxy_retry && !strcmp (proxy_retry, "yes")) + args_write_line (f, NMV_OVPN_TAG_SOCKS_PROXY_RETRY); + } + } + + s_ip4 = nm_connection_get_setting_ip4_config (connection); + if (s_ip4) { +#ifdef NM_VPN_OLD + num = nm_setting_ip4_config_get_num_routes (s_ip4); +#else + num = nm_setting_ip_config_get_num_routes (s_ip4); +#endif + for (i = 0; i < num; i++) { + char netmask_str[INET_ADDRSTRLEN] = { 0 }; + const char *next_hop_str, *dest_str; + in_addr_t netmask; + guint prefix; + guint64 metric; + char metric_buf[50]; + +#ifdef NM_VPN_OLD + char next_hop_str_buf[INET_ADDRSTRLEN] = { 0 }; + char dest_str_buf[INET_ADDRSTRLEN] = { 0 }; + in_addr_t dest, next_hop; + NMIP4Route *route = nm_setting_ip4_config_get_route (s_ip4, i); + + dest = nm_ip4_route_get_dest (route); + inet_ntop (AF_INET, (const void *) &dest, dest_str_buf, sizeof (dest_str_buf)); + dest_str = dest_str_buf; + + next_hop = nm_ip4_route_get_next_hop (route); + inet_ntop (AF_INET, (const void *) &next_hop, next_hop_str_buf, sizeof (next_hop_str_buf)); + next_hop_str = next_hop_str_buf; + + prefix = nm_ip4_route_get_prefix (route); + metric = nm_ip4_route_get_metric (route); +#else + NMIPRoute *route = nm_setting_ip_config_get_route (s_ip4, i); + + dest_str = nm_ip_route_get_dest (route); + next_hop_str = nm_ip_route_get_next_hop (route) ? : "0.0.0.0", + prefix = nm_ip_route_get_prefix (route); + metric = nm_ip_route_get_metric (route); +#endif + netmask = nm_utils_ip4_prefix_to_netmask (prefix); + inet_ntop (AF_INET, (const void *) &netmask, netmask_str, sizeof (netmask_str)); + + args_write_line (f, + NMV_OVPN_TAG_ROUTE, + dest_str, + netmask_str, + next_hop_str, + metric == -1 ? NULL : nm_sprintf_buf (metric_buf, "%u", (unsigned) metric)); + } + } + + /* Add hard-coded stuff */ + args_write_line (f, NMV_OVPN_TAG_NOBIND); + args_write_line (f, NMV_OVPN_TAG_AUTH_NOCACHE); + args_write_line (f, NMV_OVPN_TAG_SCRIPT_SECURITY, "2"); + args_write_line (f, NMV_OVPN_TAG_PERSIST_KEY); + args_write_line (f, NMV_OVPN_TAG_PERSIST_TUN); + args_write_line (f, NMV_OVPN_TAG_USER, NM_OPENVPN_USER); + args_write_line (f, NMV_OVPN_TAG_GROUP, NM_OPENVPN_GROUP); + + return g_steal_pointer (&f); +} + +gboolean +do_export (const char *path, NMConnection *connection, GError **error) +{ + nm_auto(_auto_free_gstring_p) GString *f = NULL; + gs_free_error GError *local = NULL; + + f = do_export_create (connection, path, error); + if (!f) + return FALSE; + + if (!g_file_set_contents (path, f->str, f->len, &local)) { + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("failed to write file: %s"), + local->message); + return FALSE; + } + + return TRUE; +} diff --git a/properties/import-export.h b/properties/import-export.h new file mode 100644 index 0000000..06b92a8 --- /dev/null +++ b/properties/import-export.h @@ -0,0 +1,36 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * + * Copyright (C) 2008 Dan Williams, + * + * 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. + * + **************************************************************************/ + +#ifndef _IMPORT_EXPORT_H_ +#define _IMPORT_EXPORT_H_ + +extern const char *_nmovpn_test_temp_path; + +gboolean _nmovpn_test_args_parse_line (const char *line, + gsize line_len, + const char ***out_p, + char **out_error); + +NMConnection *do_import (const char *path, const char *contents, gsize contents_len, GError **error); + +gboolean do_export (const char *path, NMConnection *connection, GError **error); + +#endif diff --git a/properties/libnm-openvpn-properties.ver b/properties/libnm-openvpn-properties.ver new file mode 100644 index 0000000..271c506 --- /dev/null +++ b/properties/libnm-openvpn-properties.ver @@ -0,0 +1,6 @@ +{ +global: + nm_vpn_plugin_ui_factory; +local: + *; +}; diff --git a/properties/libnm-vpn-plugin-openvpn-editor.ver b/properties/libnm-vpn-plugin-openvpn-editor.ver new file mode 100644 index 0000000..542d577 --- /dev/null +++ b/properties/libnm-vpn-plugin-openvpn-editor.ver @@ -0,0 +1,6 @@ +{ +global: + nm_vpn_editor_factory_openvpn; +local: + *; +}; diff --git a/properties/libnm-vpn-plugin-openvpn.ver b/properties/libnm-vpn-plugin-openvpn.ver new file mode 100644 index 0000000..92a7b14 --- /dev/null +++ b/properties/libnm-vpn-plugin-openvpn.ver @@ -0,0 +1,6 @@ +{ +global: + nm_vpn_editor_plugin_factory; +local: + *; +}; diff --git a/properties/nm-openvpn-dialog.ui b/properties/nm-openvpn-dialog.ui new file mode 100644 index 0000000..86ff00e --- /dev/null +++ b/properties/nm-openvpn-dialog.ui @@ -0,0 +1,2366 @@ + + + + + + 1 + 65535 + 1194 + 1 + 10 + + + 604800 + 1 + 10 + + + 1 + 65535 + 1500 + 1 + 10 + + + 65535 + 1300 + 1 + 10 + + + 65535 + 1 + 10 + + + 1 + 65535 + 128 + 1 + 10 + + + 1 + 65535 + 30 + 1 + 10 + + + 1 + 65535 + 30 + 1 + 10 + + + 100000000 + 100 + 1 + 10 + + + + + + + + + + + + + + + + + + + + + + None + + + TLS-Auth + + + TLS-Crypt + + + + + + + + + + + No + + + Maybe + + + Yes + + + + + + + + + + + + + + + + True + False + 12 + vertical + 16 + + + True + False + vertical + 6 + + + True + False + General + 0 + + + + + + False + False + 0 + + + + + True + False + 12 + + + True + False + 6 + 12 + + + True + False + _Gateway: + True + 0 + + + 0 + 0 + + + + + True + True + Remote gateway(s), with optional port and protocol (e.g. ovpn.corp.com:1234:tcp). You can specify multiple hosts for redundancy (use commas or spaces as delimiters). +config: remote + True + + + 1 + 0 + + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + vertical + 6 + + + True + False + Authentication + 0 + + + + + + False + False + 0 + + + + + True + False + 12 + + + True + False + 6 + 12 + + + True + False + False + False + + + True + False + start + vertical + 6 + + + True + False + CA + 5 + + + False + True + 0 + + + + + True + False + User + 4 + + + False + True + 1 + + + + + + + True + False + page 1 + + + False + + + + + True + False + start + vertical + 6 + + + True + False + 6 + 12 + + + True + False + Password: + 0 + + + 0 + 1 + + + + + True + False + User name: + 0 + + + 0 + 0 + + + + + True + True + Password passed to OpenVPN when prompted for it. +config: auth-user-pass + True + False + + + 1 + 1 + 2 + + + + + True + True + Username passed to OpenVPN when prompted for it. +config: auth-user-pass + True + + + 1 + 0 + 2 + + + + + False + True + 0 + + + + + True + False + CA + 5 + + + False + True + 1 + + + + + 1 + + + + + True + False + page 2 + + + 1 + False + + + + + True + False + start + vertical + 6 + + + True + False + 6 + 12 + + + True + False + Password: + 0 + + + 0 + 1 + + + + + True + False + User name: + 0 + + + 0 + 0 + + + + + True + True + Password passed to OpenVPN when prompted for it. +config: auth-user-pass + True + False + + + 1 + 1 + 2 + + + + + True + True + Username passed to OpenVPN when prompted for it. +config: auth-user-pass + True + + + 1 + 0 + 2 + + + + + False + True + 0 + + + + + True + False + CA + 5 + + + False + True + 1 + + + + + True + False + User + 4 + + + False + True + 2 + + + + + 2 + + + + + True + False + page 3 + + + 2 + False + + + + + True + False + 6 + 12 + + + True + False + Remote IP Address: + right + 0 + + + 0 + 3 + + + + + True + False + Local IP Address: + right + 0 + + + 0 + 4 + + + + + True + False + Key Direction: + 0 + + + 0 + 1 + + + + + True + False + Static Key: + 0 + + + 0 + 0 + + + + + True + False + Pre-shared file for Static Key encryption mode (non-TLS). +config: static <file> + + + 1 + 0 + + + + + True + True + IP address of the remote VPN endpoint. +config: ifconfig <l> <rn> + True + + + 1 + 3 + + + + + True + True + IP address of the local VPN endpoint. +config: ifconfig <l> <rn> + True + + + 1 + 4 + + + + + True + False + Direction for Static Key encryption mode (non-TLS). +If key direction is used, it must be the opposite of that used on the VPN peer. For example, if the peer uses “1”, this connection must use “0”. If you are unsure what value to use, contact your system administrator. +config: static <file> [direction] + model1 + + + + 0 + + + + + 1 + 1 + + + + + + + + + + + 3 + + + + + True + False + page 4 + + + 3 + False + + + + + 0 + 1 + 2 + + + + + True + False + Type: + 0 + + + 0 + 0 + + + + + True + False + Select an authentication mode. + True + model2 + + + + 0 + + + + + 1 + 0 + + + + + + + False + False + 1 + + + + + False + False + 1 + + + + + True + False + 1 + 0 + + + False + True + True + False + + + True + False + 6 + + + True + False + gtk-preferences + + + False + False + 0 + + + + + True + False + Ad_vanced… + True + + + False + False + 1 + + + + + + + + + False + False + end + 2 + + + + + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not required + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + 5 + OpenVPN Advanced Options + center-on-parent + True + stock-preferences + dialog + True + + + True + False + vertical + 2 + + + True + False + end + + + gtk-cancel + False + True + True + False + True + + + False + False + 0 + + + + + gtk-ok + False + True + True + False + True + + + False + False + 1 + + + + + False + True + end + 0 + + + + + True + True + + + True + False + 12 + vertical + 6 + + + True + False + 6 + + + Use custom gateway p_ort: + False + True + True + False + TCP/UDP port number for peer. (Default value when there is no port for gateway). +config: port + True + 0.5 + True + + + False + True + 0 + + + + + True + True + TCP/UDP port number for peer. (Default value when there is no port for gateway). +config: port + adjustment1 + 1 + True + + + False + False + 1 + + + + + False + True + 0 + + + + + True + False + 6 + + + Use custom _renegotiation interval: + False + True + True + False + Renegotiate data channel key after the specified number of seconds. +config: reneg-sec + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Renegotiate data channel key after the specified number of seconds. +config: reneg-sec + adjustment2 + 1 + True + + + False + False + 1 + + + + + False + True + 1 + + + + + True + False + 6 + + + Use L_ZO data compression + False + True + True + False + Use fast LZO compression. +config: comp-lzo + True + 0 + True + + + False + True + 0 + + + + + True + True + Select the LZO data compression mode. +config: comp-lzo + model4 + + + + 0 + + + + + False + False + 1 + + + + + False + True + 2 + + + + + Use a _TCP connection + False + True + True + False + Use TCP for communicating with remote host. +(This is a default setting only used when no protocol is specified for the gateway.) +config: proto tcp-client | udp + True + 0 + True + + + False + True + 3 + + + + + True + False + 6 + + + Set virtual _device type: + False + True + True + False + Explicitly set virtual device type and name (TUN/TAP). + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Explicitly set virtual device type (TUN/TAP). +config: dev-type tun | tap + model4 + + + + 0 + + + + + False + False + 1 + + + + + True + False + and _name: + True + dev_entry + 0 + + + False + False + 2 + + + + + True + True + Use custom name for TUN/TAP virtual device (instead of default “tun” or “tap”). +config: dev <name> + 15 + + + False + False + 3 + + + + + False + True + 4 + + + + + True + False + 6 + + + Use custom tunnel Maximum Transmission _Unit (MTU): + False + True + True + False + Take the TUN device MTU to be the specified value and derive the link MTU from it. +config: tun-mtu + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Take the TUN device MTU to be the specified value and derive the link MTU from it. +config: tun-mtu + adjustment3 + 1 + True + + + False + False + 1 + + + + + False + True + 5 + + + + + True + False + 6 + + + Use custom UDP _fragment size: + False + True + True + False + Enable internal datagram fragmentation with this maximum size. +config: fragment + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Enable internal datagram fragmentation with this maximum size. +config: fragment + adjustment4 + 1 + True + + + False + False + 1 + + + + + False + True + 6 + + + + + Restrict tunnel TCP Maximum _Segment Size (MSS) + False + True + True + False + Restrict tunnel TCP MSS. +config: mssfix + True + 0 + True + + + False + True + 7 + + + + + Rando_mize remote hosts + False + True + True + False + Randomize the order of gateways list (remote) as a kind of basic load-balancing measure. +config: remote-random + True + 0 + True + + + False + True + 8 + + + + + IPv6 tun link + False + True + True + False + Build a tun link capable of forwarding IPv6 traffic +config: tun-ipv6 + True + 0 + True + + + False + True + 9 + + + + + True + False + 6 + + + Specify _exit or restart ping: + False + True + True + False + Exit or restart after n seconds pass without reception of a ping or other packet from remote. +config: ping-exit | ping-restart <n> + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Exit or restart after n seconds pass without reception of a ping or other packet from remote. +config: ping-exit | ping-restart <n> + model8 + + + + 0 + + + + + False + False + 1 + + + + + True + True + Exit or restart after n seconds pass without reception of a ping or other packet from remote. +config: ping-exit | ping-restart <n> + adjustment8 + 1 + True + + + False + False + 2 + + + + + False + True + 10 + + + + + True + False + 6 + + + Specify pin_g interval: + False + True + True + False + Ping remote over the TCP/UDP control channel if no packets have been sent for at least n seconds. +config: ping <n> + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Ping remote over the TCP/UDP control channel if no packets have been sent for at least n seconds. +config: ping <n> + adjustment7 + 1 + True + + + False + False + 1 + + + + + False + True + 10 + + + + + Accept authenticated packets from any address (F_loat) + False + True + True + False + Allow remote peer to change its IP address and/or port number, such as due to DHCP (this is the default if --remote is not used). --float when specified with --remote allows an OpenVPN session to initially connect to a peer at a known address, however if packets arrive from a new address and pass all authentication tests, the new address will take control of the session. This is useful when you are connecting to a peer which holds a dynamic address such as a dial-in user or DHCP client. + +Essentially, --float tells OpenVPN to accept authenticated packets from any address, not only the address which was specified in the --remote option. + +config: float + True + 0 + True + + + False + True + 11 + + + + + True + False + 6 + + + Specify max routes: + False + True + True + False + Specify the maximum number of routes the server is allowed to specify. +config: max-routes <n> + True + 0.5 + True + + + False + True + 0 + + + + + True + True + Specify the maximum number of routes the server is allowed to specify. +config: max-routes <n> + adjustment9 + 1 + True + + + False + False + 1 + + + + + False + True + 12 + + + + + + + True + False + General + + + False + + + + + True + False + 0 + 0 + 0 + 0 + 12 + 12 + 12 + 12 + + + True + False + 12 + 12 + + + True + False + Encrypt packets with cipher algorithm. The default is BF-CBC (Blowfish in Cipher Block Chaining mode). +config: cipher + model3 + + + + 0 + + + + + 1 + 0 + + + + + Use custom _size of cipher key: + False + True + True + False + Set cipher key size to a custom value. If unspecified, it defaults to cipher-specific size. +config: keysize <n> + True + 0.5 + True + + + 0 + 1 + + + + + True + True + Set cipher key size to a custom value. If unspecified, it defaults to cipher-specific size. +config: keysize <n> + adjustment6 + 1 + True + + + 1 + 1 + + + + + True + False + Authenticate packets with HMAC using message digest algorithm. The default is SHA1. +config: auth + model4 + + + + 0 + + + + + 1 + 2 + + + + + True + False + Ci_pher: + True + right + cipher_combo + 1 + + + 0 + 0 + + + + + True + False + _HMAC Authentication: + True + right + hmacauth_combo + 1 + + + 0 + 2 + + + + + + + 1 + + + + + True + False + Security + + + 1 + False + + + + + True + False + 12 + 12 + 12 + 12 + + + True + False + vertical + 12 + + + True + False + start + True + 6 + 12 + + + True + False + _Subject Match: + True + tls_remote_entry + 1 + + + 0 + 1 + + + + + True + True + Subject or Common Name to verify server certificate information against. + +config: verify-x509-name subject-or-name [mode] +config (legacy mode): tls-remote subject-or-name + True + + + 1 + 1 + + + + + True + False + Server _Certificate Check: + True + tls_remote_mode_combo + 1 + + + 0 + 0 + + + + + True + False + Verify server certificate identification. + +When enabled, connection will only succeed if the server certificate matches some expected properties. +Matching can either apply to the whole certificate subject (all the fields), +or just the Common Name (CN field). + +The legacy option tls-remote is deprecated and removed from OpenVPN 2.4 and newer. Do not use it anymore. + +config: verify-x509-name subject-or-name [mode] +config (legacy mode): tls-remote subject-or-name + True + model9 + + + + 0 + + + + + 1 + 0 + + + + + True + True + 0 + + + + + True + False + start + 3 + 12 + + + _Verify peer (server) certificate usage signature + False + True + True + False + Require that peer certificate was signed with an explicit key usage and extended key usage based on RFC3280 TLS rules. + True + 0 + True + + + 0 + 0 + 2 + + + + + True + False + _Remote peer certificate TLS type: + True + remote_cert_tls_combo + 0 + + + 0 + 1 + + + + + True + False + Require that peer certificate was signed with an explicit key usage and extended key usage based on RFC3280 TLS rules. +config: remote-cert-tls client|server + model7 + + + + 0 + + + + + 1 + 1 + + + + + True + True + 6 + 1 + + + + + True + False + start + 3 + 12 + + + _Verify peer (server) certificate nsCertType designation + False + True + True + False + Require that peer certificate was signed with an explicit nsCertType designation. + baseline + start + True + 0 + True + + + 0 + 0 + 2 + + + + + True + False + _Remote peer certificate nsCert designation: + True + remote_cert_tls_combo + 0 + + + 0 + 1 + + + + + True + False + Require that peer certificate was signed with an explicit nsCertType designation. +config: ns-cert-type client|server + model7 + + + + 0 + + + + + 1 + 1 + + + + + True + True + 6 + 2 + + + + + True + False + 6 + 12 + + + True + False + start + 24 + True + 6 + 12 + + + True + False + Key _Direction: + True + direction_combo + 1 + + + 0 + 2 + + + + + True + False + Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks. +config: tls-auth <file> [direction] + True + + + 1 + 1 + + + + + True + False + Direction parameter for static key mode. +If key direction is used, it must be the opposite of that used on the VPN peer. For example, if the peer uses “1”, this connection must use “0”. If you are unsure what value to use, contact your system administrator. +config: tls-auth <file> [direction] + model5 + + + + 0 + + + + + 1 + 2 + + + + + True + False + Key _File: + True + tls_auth_chooser + 1 + + + 0 + 1 + + + + + True + False + Mode + + + 0 + 0 + + + + + True + False + Add an additional layer of encryption or HMAC authentication. + model10 + 0 + 0 + + + + 0 + + + + + 1 + 0 + + + + + 0 + 1 + + + + + True + False + Add an additional layer of encryption or HMAC authentication. + start + start + Additional TLS authentication or encryption + + + 0 + 0 + + + + + True + True + 3 + + + + + + + 2 + + + + + True + False + TLS Authentication + + + 2 + False + + + + + True + False + 0 + 0 + 0 + 12 + 12 + 12 + 12 + + + True + False + 6 + 12 + + + True + False + Proxy type: HTTP or Socks. +config: http-proxy or socks-proxy + model6 + on + + + + 0 + + + + + 1 + 0 + + + + + True + False + Proxy _Type: + True + right + proxy_type_combo + 1 + + + 0 + 0 + + + + + True + False + start + <i>Select this option if your organization requires the use of a proxy server to access the Internet.</i> + True + True + 35 + 0 + + + 1 + 1 + + + + + True + False + Server _Address: + True + proxy_server_entry + 1 + + + 0 + 2 + + + + + True + False + 0 + 0 + 0 + + + True + False + + + True + True + Connect to remote host through a proxy with this address. +config: http-proxy or socks-proxy + + + True + True + 0 + + + + + True + False + _Port: + True + right + proxy_port_spinbutton + 1 + + + True + True + 6 + 1 + + + + + True + True + Connect to remote host through a proxy with this port. +config: http-proxy or socks-proxy + 5 + adjustment5 + 1 + True + + + True + True + 2 + + + + + + + 1 + 2 + + + + + _Retry indefinitely when errors occur + False + True + True + False + Retry indefinitely on proxy errors. It simulates a SIGUSR1 reset. +config: http-proxy-retry or socks-proxy-retry + True + 0 + True + + + 1 + 3 + + + + + True + False + Proxy _Username: + True + right + proxy_username_entry + 1 + + + 0 + 4 + + + + + True + False + Proxy Passwor_d: + True + right + proxy_password_entry + 1 + + + 0 + 5 + + + + + True + True + HTTP/Socks proxy username passed to OpenVPN when prompted for it. + + + 1 + 4 + + + + + True + True + HTTP/Socks proxy password passed to OpenVPN when prompted for it. + False + + + 1 + 5 + + + + + _Show password + False + True + True + False + True + 0.5 + True + + + 1 + 6 + + + + + + + + + + + + + + + + 3 + + + + + True + False + Proxies + + + 3 + False + + + + + True + False + 12 + vertical + 6 + + + True + False + 6 + + + Path mtu discovery + True + True + False + True + + + False + True + 1 + + + + + True + False + model11 + 0 + 0 + + + + 0 + + + + + False + True + 2 + + + + + False + True + 0 + + + + + 4 + + + + + True + False + Misc + + + 4 + False + + + + + False + False + 1 + + + + + + cancel_button + ok_button + + + diff --git a/properties/nm-openvpn-editor-plugin.c b/properties/nm-openvpn-editor-plugin.c new file mode 100644 index 0000000..3fcf898 --- /dev/null +++ b/properties/nm-openvpn-editor-plugin.c @@ -0,0 +1,234 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * nm-openvpn-editor-plugin.c : GNOME UI dialogs for configuring openvpn VPN connections + * + * Copyright (C) 2005 Tim Niemueller + * Copyright (C) 2008 - 2010 Dan Williams, + * Copyright (C) 2008 - 2011 Red Hat, Inc. + * Based on work by David Zeuthen, + * + * 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. + * + **************************************************************************/ + +#include "nm-default.h" + +#include "nm-openvpn-editor-plugin.h" + +#include +#include +#include +#include +#include + +#ifdef NM_VPN_OLD +#include "nm-openvpn-editor.h" +#else +#include "nm-utils/nm-vpn-plugin-utils.h" +#endif + +#include "import-export.h" + +#define OPENVPN_PLUGIN_NAME _("OpenVPN") +#define OPENVPN_PLUGIN_DESC _("Compatible with the OpenVPN server.") + +/*****************************************************************************/ + +enum { + PROP_0, + PROP_NAME, + PROP_DESC, + PROP_SERVICE +}; + +static void openvpn_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class); + +G_DEFINE_TYPE_EXTENDED (OpenvpnEditorPlugin, openvpn_editor_plugin, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR_PLUGIN, + openvpn_editor_plugin_interface_init)) + +/*****************************************************************************/ + +static NMConnection * +import (NMVpnEditorPlugin *iface, const char *path, GError **error) +{ + NMConnection *connection = NULL; + char *contents = NULL; + char *ext; + gsize contents_len; + + ext = strrchr (path, '.'); + + if (!ext || ( !g_str_has_suffix (ext, ".ovpn") + && !g_str_has_suffix (ext, ".conf") + && !g_str_has_suffix (ext, ".cnf") + && !g_str_has_suffix (ext, ".ovpntest"))) { /* Special extension for testcases */ + g_set_error_literal (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN, + _("unknown OpenVPN file extension")); + goto out; + } + + if (!g_file_get_contents (path, &contents, &contents_len, error)) + return NULL; + + connection = do_import (path, contents, contents_len, error); + +out: + g_free (contents); + return connection; +} + +static gboolean +export (NMVpnEditorPlugin *iface, + const char *path, + NMConnection *connection, + GError **error) +{ + return do_export (path, connection, error); +} + +static char * +get_suggested_filename (NMVpnEditorPlugin *iface, NMConnection *connection) +{ + NMSettingConnection *s_con; + const char *id; + + g_return_val_if_fail (connection != NULL, NULL); + + s_con = nm_connection_get_setting_connection (connection); + g_return_val_if_fail (s_con != NULL, NULL); + + id = nm_setting_connection_get_id (s_con); + g_return_val_if_fail (id != NULL, NULL); + + return g_strdup_printf ("%s (openvpn).conf", id); +} + +static guint32 +get_capabilities (NMVpnEditorPlugin *iface) +{ + return (NM_VPN_EDITOR_PLUGIN_CAPABILITY_IMPORT | + NM_VPN_EDITOR_PLUGIN_CAPABILITY_EXPORT | + NM_VPN_EDITOR_PLUGIN_CAPABILITY_IPV6); +} + +#ifndef NM_VPN_OLD +static NMVpnEditor * +_call_editor_factory (gpointer factory, + NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + gpointer user_data, + GError **error) +{ + return ((NMVpnEditorFactory) factory) (editor_plugin, + connection, + error); +} +#endif + +static NMVpnEditor * +get_editor (NMVpnEditorPlugin *iface, NMConnection *connection, GError **error) +{ + g_return_val_if_fail (OPENVPN_IS_EDITOR_PLUGIN (iface), NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + g_return_val_if_fail (!error || !*error, NULL); + + { +#ifdef NM_VPN_OLD + return openvpn_editor_new (connection, error); +#else + return nm_vpn_plugin_utils_load_editor (NM_PLUGIN_DIR"/libnm-vpn-plugin-openvpn-editor.so", + "nm_vpn_editor_factory_openvpn", + _call_editor_factory, + iface, + connection, + NULL, + error); +#endif + } +} + +/*****************************************************************************/ + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + switch (prop_id) { + case PROP_NAME: + g_value_set_string (value, OPENVPN_PLUGIN_NAME); + break; + case PROP_DESC: + g_value_set_string (value, OPENVPN_PLUGIN_DESC); + break; + case PROP_SERVICE: + g_value_set_string (value, NM_VPN_SERVICE_TYPE_OPENVPN); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +openvpn_editor_plugin_init (OpenvpnEditorPlugin *plugin) +{ +} + +static void +openvpn_editor_plugin_interface_init (NMVpnEditorPluginInterface *iface_class) +{ + iface_class->get_editor = get_editor; + iface_class->get_capabilities = get_capabilities; + iface_class->import_from_file = import; + iface_class->export_to_file = export; + iface_class->get_suggested_filename = get_suggested_filename; +} + +static void +openvpn_editor_plugin_class_init (OpenvpnEditorPluginClass *req_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (req_class); + + object_class->get_property = get_property; + + g_object_class_override_property (object_class, + PROP_NAME, + NM_VPN_EDITOR_PLUGIN_NAME); + + g_object_class_override_property (object_class, + PROP_DESC, + NM_VPN_EDITOR_PLUGIN_DESCRIPTION); + + g_object_class_override_property (object_class, + PROP_SERVICE, + NM_VPN_EDITOR_PLUGIN_SERVICE); +} + +/*****************************************************************************/ + +G_MODULE_EXPORT NMVpnEditorPlugin * +nm_vpn_editor_plugin_factory (GError **error) +{ + g_return_val_if_fail (!error || !*error, NULL); + + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + + return g_object_new (OPENVPN_TYPE_EDITOR_PLUGIN, NULL); +} + diff --git a/properties/nm-openvpn-editor-plugin.h b/properties/nm-openvpn-editor-plugin.h new file mode 100644 index 0000000..df7808f --- /dev/null +++ b/properties/nm-openvpn-editor-plugin.h @@ -0,0 +1,56 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * nm-openvpn-editor.h : GNOME UI dialogs for configuring openvpn VPN connections + * + * Copyright (C) 2008 Dan Williams, + * + * 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. + * + **************************************************************************/ + +#ifndef __NM_OPENVPN_EDITOR_PLUGIN_H__ +#define __NM_OPENVPN_EDITOR_PLUGIN_H__ + +#define OPENVPN_TYPE_EDITOR_PLUGIN (openvpn_editor_plugin_get_type ()) +#define OPENVPN_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OPENVPN_TYPE_EDITOR_PLUGIN, OpenvpnEditorPlugin)) +#define OPENVPN_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OPENVPN_TYPE_EDITOR_PLUGIN, OpenvpnEditorPluginClass)) +#define OPENVPN_IS_EDITOR_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OPENVPN_TYPE_EDITOR_PLUGIN)) +#define OPENVPN_IS_EDITOR_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OPENVPN_TYPE_EDITOR_PLUGIN)) +#define OPENVPN_EDITOR_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OPENVPN_TYPE_EDITOR_PLUGIN, OpenvpnEditorPluginClass)) + +typedef struct _OpenvpnEditorPlugin OpenvpnEditorPlugin; +typedef struct _OpenvpnEditorPluginClass OpenvpnEditorPluginClass; + +struct _OpenvpnEditorPlugin { + GObject parent; +}; + +struct _OpenvpnEditorPluginClass { + GObjectClass parent; +}; + +GType openvpn_editor_plugin_get_type (void); + +typedef NMVpnEditor *(*NMVpnEditorFactory) (NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + GError **error); + +NMVpnEditor * +nm_vpn_editor_factory_openvpn (NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + GError **error); + +#endif /* __NM_OPENVPN_EDITOR_PLUGIN_H__ */ + diff --git a/properties/nm-openvpn-editor.c b/properties/nm-openvpn-editor.c new file mode 100644 index 0000000..81dcdfa --- /dev/null +++ b/properties/nm-openvpn-editor.c @@ -0,0 +1,563 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * CVSID: $Id: nm-openvpn.c 4232 2008-10-29 09:13:40Z tambeti $ + * + * nm-openvpn.c : GNOME UI dialogs for configuring openvpn VPN connections + * + * Copyright (C) 2005 Tim Niemueller + * Copyright (C) 2008 - 2010 Dan Williams, + * Copyright (C) 2008 - 2011 Red Hat, Inc. + * Based on work by David Zeuthen, + * + * 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. + * + **************************************************************************/ + +#include "nm-default.h" + +#include "nm-openvpn-editor.h" + +#include +#include +#include +#include +#include +#include + +#include "auth-helpers.h" +#include "utils.h" + +/*****************************************************************************/ + +static void openvpn_editor_plugin_widget_interface_init (NMVpnEditorInterface *iface_class); + +G_DEFINE_TYPE_EXTENDED (OpenvpnEditor, openvpn_editor_plugin_widget, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (NM_TYPE_VPN_EDITOR, + openvpn_editor_plugin_widget_interface_init)) + +#define OPENVPN_EDITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), OPENVPN_TYPE_EDITOR, OpenvpnEditorPrivate)) + +typedef struct { + GtkBuilder *builder; + GtkWidget *widget; + GtkWindowGroup *window_group; + gboolean window_added; + GHashTable *advanced; + gboolean new_connection; + GtkWidget *tls_user_cert_chooser; +} OpenvpnEditorPrivate; + +/*****************************************************************************/ + +#define COL_AUTH_NAME 0 +#define COL_AUTH_PAGE 1 +#define COL_AUTH_TYPE 2 + +static gboolean +check_gateway_entry (const char *str) +{ + gs_free char *str_clone = NULL; + char *str_iter; + const char *tok; + gboolean success = FALSE; + + if (!str || !str[0]) + return FALSE; + + str_clone = g_strdup (str); + str_iter = str_clone; + while ((tok = strsep (&str_iter, " \t,"))) { + if ( tok[0] + && (nmovpn_remote_parse (tok, + NULL, + NULL, + NULL, + NULL, + NULL) != -1)) + return FALSE; + success = TRUE; + } + return success; +} + +static gboolean +check_validity (OpenvpnEditor *self, GError **error) +{ + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + GtkWidget *widget; + const char *str; + GtkTreeModel *model; + GtkTreeIter iter; + const char *contype = NULL; + gboolean success; + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && check_gateway_entry (str)) + gtk_style_context_remove_class (gtk_widget_get_style_context (widget), "error"); + else { + gtk_style_context_add_class (gtk_widget_get_style_context (widget), "error"); + g_set_error (error, + NMV_EDITOR_PLUGIN_ERROR, + NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY, + NM_OPENVPN_KEY_REMOTE); + return FALSE; + } + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "auth_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + g_return_val_if_fail (model, FALSE); + success = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + g_return_val_if_fail (success == TRUE, FALSE); + gtk_tree_model_get (model, &iter, COL_AUTH_TYPE, &contype, -1); + if (!auth_widget_check_validity (priv->builder, contype, error)) + return FALSE; + + return TRUE; +} + +static void +stuff_changed_cb (GtkWidget *widget, gpointer user_data) +{ + g_signal_emit_by_name (OPENVPN_EDITOR (user_data), "changed"); +} + +static void +auth_combo_changed_cb (GtkWidget *combo, gpointer user_data) +{ + OpenvpnEditor *self = OPENVPN_EDITOR (user_data); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + GtkWidget *auth_notebook; + GtkTreeModel *model; + GtkTreeIter iter; + gint new_page = 0; + + auth_notebook = GTK_WIDGET (gtk_builder_get_object (priv->builder, "auth_notebook")); + g_assert (auth_notebook); + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (combo)); + g_assert (model); + g_assert (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo), &iter)); + + gtk_tree_model_get (model, &iter, COL_AUTH_PAGE, &new_page, -1); + + gtk_notebook_set_current_page (GTK_NOTEBOOK (auth_notebook), new_page); + + stuff_changed_cb (combo, self); +} + +static void +advanced_dialog_close_cb (GtkWidget *dialog, gpointer user_data) +{ + gtk_widget_hide (dialog); + /* gtk_widget_destroy() will remove the window from the window group */ + gtk_widget_destroy (dialog); +} + +static void +advanced_dialog_response_cb (GtkWidget *dialog, gint response, gpointer user_data) +{ + OpenvpnEditor *self = OPENVPN_EDITOR (user_data); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + GError *error = NULL; + + if (response != GTK_RESPONSE_OK) { + advanced_dialog_close_cb (dialog, self); + return; + } + + if (priv->advanced) + g_hash_table_destroy (priv->advanced); + priv->advanced = advanced_dialog_new_hash_from_dialog (dialog, &error); + if (!priv->advanced) { + g_message ("%s: error reading advanced settings: %s", __func__, error->message); + g_error_free (error); + } + advanced_dialog_close_cb (dialog, self); + + stuff_changed_cb (NULL, self); +} + +static void +advanced_button_clicked_cb (GtkWidget *button, gpointer user_data) +{ + OpenvpnEditor *self = OPENVPN_EDITOR (user_data); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + GtkWidget *dialog, *toplevel, *widget; + GtkTreeModel *model; + GtkTreeIter iter; + const char *contype = NULL; + gboolean success; + + toplevel = gtk_widget_get_toplevel (priv->widget); + g_return_if_fail (gtk_widget_is_toplevel (toplevel)); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "auth_combo")); + model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget)); + success = gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter); + g_return_if_fail (success == TRUE); + gtk_tree_model_get (model, &iter, COL_AUTH_TYPE, &contype, -1); + + dialog = advanced_dialog_new (priv->advanced, contype); + if (!dialog) { + g_warning ("%s: failed to create the Advanced dialog!", __func__); + return; + } + + gtk_window_group_add_window (priv->window_group, GTK_WINDOW (dialog)); + if (!priv->window_added) { + gtk_window_group_add_window (priv->window_group, GTK_WINDOW (toplevel)); + priv->window_added = TRUE; + } + + gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel)); + g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (advanced_dialog_response_cb), self); + g_signal_connect (G_OBJECT (dialog), "close", G_CALLBACK (advanced_dialog_close_cb), self); + + gtk_widget_show_all (dialog); +} + +static gboolean +init_editor_plugin (OpenvpnEditor *self, NMConnection *connection, GError **error) +{ + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + NMSettingVpn *s_vpn; + GtkWidget *widget; + GtkListStore *store; + GtkTreeIter iter; + int active = -1; + const char *value; + const char *contype = NM_OPENVPN_CONTYPE_TLS; + + s_vpn = nm_connection_get_setting_vpn (connection); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry")); + g_return_val_if_fail (widget != NULL, FALSE); + if (s_vpn) { + value = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE); + if (value) + gtk_entry_set_text (GTK_ENTRY (widget), value); + } + g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "auth_combo")); + g_return_val_if_fail (widget != NULL, FALSE); + + store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING); + + if (s_vpn) { + contype = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE); + if (contype) { + if ( strcmp (contype, NM_OPENVPN_CONTYPE_TLS) + && strcmp (contype, NM_OPENVPN_CONTYPE_STATIC_KEY) + && strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD) + && strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + contype = NM_OPENVPN_CONTYPE_TLS; + } else + contype = NM_OPENVPN_CONTYPE_TLS; + } + + /* TLS auth widget */ + tls_pw_init_auth_widget (priv->builder, s_vpn, + NM_OPENVPN_CONTYPE_TLS, "tls", + stuff_changed_cb, self); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COL_AUTH_NAME, _("Certificates (TLS)"), + COL_AUTH_PAGE, 0, + COL_AUTH_TYPE, NM_OPENVPN_CONTYPE_TLS, + -1); + + /* Password auth widget */ + tls_pw_init_auth_widget (priv->builder, s_vpn, + NM_OPENVPN_CONTYPE_PASSWORD, "pw", + stuff_changed_cb, self); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COL_AUTH_NAME, _("Password"), + COL_AUTH_PAGE, 1, + COL_AUTH_TYPE, NM_OPENVPN_CONTYPE_PASSWORD, + -1); + if ((active < 0) && !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD)) + active = 1; + + /* Password+TLS auth widget */ + tls_pw_init_auth_widget (priv->builder, s_vpn, + NM_OPENVPN_CONTYPE_PASSWORD_TLS, "pw_tls", + stuff_changed_cb, self); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COL_AUTH_NAME, _("Password with Certificates (TLS)"), + COL_AUTH_PAGE, 2, + COL_AUTH_TYPE, NM_OPENVPN_CONTYPE_PASSWORD_TLS, + -1); + if ((active < 0) && !strcmp (contype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + active = 2; + + /* Static key auth widget */ + sk_init_auth_widget (priv->builder, s_vpn, stuff_changed_cb, self); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + COL_AUTH_NAME, _("Static Key"), + COL_AUTH_PAGE, 3, + COL_AUTH_TYPE, NM_OPENVPN_CONTYPE_STATIC_KEY, + -1); + if ((active < 0) && !strcmp (contype, NM_OPENVPN_CONTYPE_STATIC_KEY)) + active = 3; + + gtk_combo_box_set_model (GTK_COMBO_BOX (widget), GTK_TREE_MODEL (store)); + g_object_unref (store); + g_signal_connect (widget, "changed", G_CALLBACK (auth_combo_changed_cb), self); + gtk_combo_box_set_active (GTK_COMBO_BOX (widget), active < 0 ? 0 : active); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "advanced_button")); + g_signal_connect (G_OBJECT (widget), "clicked", G_CALLBACK (advanced_button_clicked_cb), self); + + return TRUE; +} + +static GObject * +get_widget (NMVpnEditor *iface) +{ + OpenvpnEditor *self = OPENVPN_EDITOR (iface); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + + return G_OBJECT (priv->widget); +} + +static void +hash_copy_advanced (gpointer key, gpointer data, gpointer user_data) +{ + NMSettingVpn *s_vpn = NM_SETTING_VPN (user_data); + const char *value = (const char *) data; + + g_return_if_fail (value && strlen (value)); + + /* HTTP Proxy password is a secret, not a data item */ + if (!strcmp (key, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD)) + nm_setting_vpn_add_secret (s_vpn, (const char *) key, value); + else + nm_setting_vpn_add_data_item (s_vpn, (const char *) key, value); +} + +static char * +get_auth_type (GtkBuilder *builder) +{ + GtkComboBox *combo; + GtkTreeModel *model; + GtkTreeIter iter; + char *auth_type = NULL; + gboolean success; + + combo = GTK_COMBO_BOX (GTK_WIDGET (gtk_builder_get_object (builder, "auth_combo"))); + model = gtk_combo_box_get_model (combo); + + success = gtk_combo_box_get_active_iter (combo, &iter); + g_return_val_if_fail (success == TRUE, NULL); + gtk_tree_model_get (model, &iter, COL_AUTH_TYPE, &auth_type, -1); + + return auth_type; +} + +static gboolean +update_connection (NMVpnEditor *iface, + NMConnection *connection, + GError **error) +{ + OpenvpnEditor *self = OPENVPN_EDITOR (iface); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (self); + NMSettingVpn *s_vpn; + GtkWidget *widget; + char *auth_type; + const char *str; + gboolean valid = FALSE; + + if (!check_validity (self, error)) + return FALSE; + + s_vpn = NM_SETTING_VPN (nm_setting_vpn_new ()); + g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, NM_VPN_SERVICE_TYPE_OPENVPN, NULL); + + widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "gateway_entry")); + str = gtk_entry_get_text (GTK_ENTRY (widget)); + if (str && str[0]) + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE, str); + + auth_type = get_auth_type (priv->builder); + if (auth_type) { + nm_setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, auth_type); + auth_widget_update_connection (priv->builder, auth_type, s_vpn); + g_free (auth_type); + } + + if (priv->advanced) + g_hash_table_foreach (priv->advanced, hash_copy_advanced, s_vpn); + + /* Default to agent-owned secrets for new connections */ + if (priv->new_connection) { + if (nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD)) { + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + + if (nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD)) { + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_PASSWORD, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + + if (nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS)) { + nm_setting_set_secret_flags (NM_SETTING (s_vpn), + NM_OPENVPN_KEY_CERTPASS, + NM_SETTING_SECRET_FLAG_AGENT_OWNED, + NULL); + } + } + + nm_connection_add_setting (connection, NM_SETTING (s_vpn)); + valid = TRUE; + + return valid; +} + +static void +is_new_func (const char *key, const char *value, gpointer user_data) +{ + gboolean *is_new = user_data; + + /* If there are any VPN data items the connection isn't new */ + *is_new = FALSE; +} + +/*****************************************************************************/ + +static void +openvpn_editor_plugin_widget_init (OpenvpnEditor *plugin) +{ +} + +NMVpnEditor * +openvpn_editor_new (NMConnection *connection, GError **error) +{ + NMVpnEditor *object; + OpenvpnEditorPrivate *priv; + gboolean new = TRUE; + NMSettingVpn *s_vpn; + + if (error) + g_return_val_if_fail (*error == NULL, NULL); + + object = g_object_new (OPENVPN_TYPE_EDITOR, NULL); + if (!object) { + g_set_error_literal (error, NMV_EDITOR_PLUGIN_ERROR, 0, _("could not create openvpn object")); + return NULL; + } + + priv = OPENVPN_EDITOR_GET_PRIVATE (object); + + priv->builder = gtk_builder_new (); + + gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE); + + if (!gtk_builder_add_from_resource (priv->builder, "/org/freedesktop/network-manager-openvpn/nm-openvpn-dialog.ui", error)) { + g_object_unref (object); + g_return_val_if_reached (NULL); + } + + priv->widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "openvpn-vbox")); + if (!priv->widget) { + g_set_error_literal (error, NMV_EDITOR_PLUGIN_ERROR, 0, _("could not load UI widget")); + g_object_unref (object); + g_return_val_if_reached (NULL); + } + g_object_ref_sink (priv->widget); + + priv->window_group = gtk_window_group_new (); + + s_vpn = nm_connection_get_setting_vpn (connection); + if (s_vpn) + nm_setting_vpn_foreach_data_item (s_vpn, is_new_func, &new); + priv->new_connection = new; + + if (!init_editor_plugin (OPENVPN_EDITOR (object), connection, error)) { + g_object_unref (object); + return NULL; + } + + priv->advanced = advanced_dialog_new_hash_from_connection (connection, error); + if (!priv->advanced) { + g_object_unref (object); + return NULL; + } + + return object; +} + +static void +dispose (GObject *object) +{ + OpenvpnEditor *plugin = OPENVPN_EDITOR (object); + OpenvpnEditorPrivate *priv = OPENVPN_EDITOR_GET_PRIVATE (plugin); + + g_clear_object (&priv->window_group); + + g_clear_object (&priv->widget); + + g_clear_object (&priv->builder); + + g_clear_pointer (&priv->advanced, g_hash_table_destroy); + + G_OBJECT_CLASS (openvpn_editor_plugin_widget_parent_class)->dispose (object); +} + +static void +openvpn_editor_plugin_widget_interface_init (NMVpnEditorInterface *iface_class) +{ + /* interface implementation */ + iface_class->get_widget = get_widget; + iface_class->update_connection = update_connection; +} + +static void +openvpn_editor_plugin_widget_class_init (OpenvpnEditorClass *req_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (req_class); + + g_type_class_add_private (req_class, sizeof (OpenvpnEditorPrivate)); + + object_class->dispose = dispose; +} + +/*****************************************************************************/ + +#ifndef NM_VPN_OLD + +#include "nm-openvpn-editor-plugin.h" + +G_MODULE_EXPORT NMVpnEditor * +nm_vpn_editor_factory_openvpn (NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + GError **error) +{ + g_return_val_if_fail (!error || !*error, NULL); + + return openvpn_editor_new (connection, error); +} +#endif + diff --git a/properties/nm-openvpn-editor.h b/properties/nm-openvpn-editor.h new file mode 100644 index 0000000..6940068 --- /dev/null +++ b/properties/nm-openvpn-editor.h @@ -0,0 +1,49 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/*************************************************************************** + * nm-openvpn-editor.h : GNOME UI dialogs for configuring openvpn VPN connections + * + * Copyright (C) 2008 Dan Williams, + * + * 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. + * + **************************************************************************/ + +#ifndef __NM_OPENVPN_EDITOR_H__ +#define __NM_OPENVPN_EDITOR_H__ + +#define OPENVPN_TYPE_EDITOR (openvpn_editor_plugin_widget_get_type ()) +#define OPENVPN_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OPENVPN_TYPE_EDITOR, OpenvpnEditor)) +#define OPENVPN_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OPENVPN_TYPE_EDITOR, OpenvpnEditorClass)) +#define OPENVPN_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OPENVPN_TYPE_EDITOR)) +#define OPENVPN_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OPENVPN_TYPE_EDITOR)) +#define OPENVPN_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OPENVPN_TYPE_EDITOR, OpenvpnEditorClass)) + +typedef struct _OpenvpnEditor OpenvpnEditor; +typedef struct _OpenvpnEditorClass OpenvpnEditorClass; + +struct _OpenvpnEditor { + GObject parent; +}; + +struct _OpenvpnEditorClass { + GObjectClass parent; +}; + +GType openvpn_editor_plugin_widget_get_type (void); + +NMVpnEditor *openvpn_editor_new (NMConnection *connection, GError **error); + +#endif /* __NM_OPENVPN_EDITOR_H__ */ + diff --git a/properties/tests/conf/device-notype.ovpn b/properties/tests/conf/device-notype.ovpn new file mode 100644 index 0000000..1236323 --- /dev/null +++ b/properties/tests/conf/device-notype.ovpn @@ -0,0 +1,26 @@ +client +dev tap +proto tcp +topology subnet +remote miami.proxpn.com 443 +resolv-retry infinite +nobind +persist-key +persist-tun +user openvpn +group openvpn +comp-lzo +tun-mtu 1500 +mssfix 1450 +auth-user-pass +auth-nocache +reneg-sec 0 + +cd /etc/openvpn +ca CompanyISCA.pem +cipher AES-256-CBC +reneg-sec 0 + +ping 30 +ping-exit 120 +verb 4 diff --git a/properties/tests/conf/device.ovpn b/properties/tests/conf/device.ovpn new file mode 100644 index 0000000..ffc5898 --- /dev/null +++ b/properties/tests/conf/device.ovpn @@ -0,0 +1,27 @@ +client +dev company0 +dev-type tun +proto tcp +topology subnet +remote miami.proxpn.com 443 +resolv-retry infinite +nobind +persist-key +persist-tun +user openvpn +group openvpn +comp-lzo +tun-mtu 1500 +mssfix 1450 +auth-user-pass +auth-nocache +reneg-sec 0 + +cd /etc/openvpn +ca CompanyISCA.pem +cipher AES-256-CBC +reneg-sec 0 + +ping 30 +ping-exit 120 +verb 4 diff --git a/properties/tests/conf/httpauthfile b/properties/tests/conf/httpauthfile new file mode 100644 index 0000000..452c914 --- /dev/null +++ b/properties/tests/conf/httpauthfile @@ -0,0 +1,2 @@ +myusername +mypassword diff --git a/properties/tests/conf/iso885915.ovpn b/properties/tests/conf/iso885915.ovpn new file mode 100644 index 0000000..1c27dbd --- /dev/null +++ b/properties/tests/conf/iso885915.ovpn @@ -0,0 +1,14 @@ +# something non utf8: Att ta en ko + +client +dev tun +proto udp +topology subnet +remote test.server.com 443 +nobind +ca Atttaenko.pem +auth-user-pass +auth-nocache +script-security 2 + + diff --git a/properties/tests/conf/keepalive.ovpn b/properties/tests/conf/keepalive.ovpn new file mode 100644 index 0000000..5bd1ed2 --- /dev/null +++ b/properties/tests/conf/keepalive.ovpn @@ -0,0 +1,25 @@ +port 2345 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + +keepalive 10 30 diff --git a/properties/tests/conf/keysize.ovpn b/properties/tests/conf/keysize.ovpn new file mode 100644 index 0000000..8d83d89 --- /dev/null +++ b/properties/tests/conf/keysize.ovpn @@ -0,0 +1,20 @@ +client +dev tun +proto tcp +remote miami.proxpn.com 443 +resolv-retry infinite +nobind +persist-key +persist-tun +comp-lzo +tun-mtu 1500 +mssfix 1450 +auth-user-pass +reneg-sec 0 + +ca ssl/ca.crt +cert ssl/client.crt +key ssl/client.key +cipher BF-CBC +keysize 512 + diff --git a/properties/tests/conf/mtu-disc.ovpn b/properties/tests/conf/mtu-disc.ovpn new file mode 100644 index 0000000..0370b11 --- /dev/null +++ b/properties/tests/conf/mtu-disc.ovpn @@ -0,0 +1,28 @@ +client +dev company0 +dev-type tun +proto tcp +topology subnet +remote miami.proxpn.com 443 +resolv-retry infinite +nobind +persist-key +persist-tun +user openvpn +group openvpn +comp-lzo +tun-mtu 1500 +mssfix 1450 +auth-user-pass +auth-nocache +reneg-sec 0 + +cd /etc/openvpn +ca CompanyISCA.pem +cipher AES-256-CBC +reneg-sec 0 +mtu-disc yes + +ping 30 +ping-exit 120 +verb 4 diff --git a/properties/tests/conf/password.conf b/properties/tests/conf/password.conf new file mode 100644 index 0000000..cfe5835 --- /dev/null +++ b/properties/tests/conf/password.conf @@ -0,0 +1,30 @@ +client +dev tun + +proto udp +topology subnet + +rport 2352 +remote test.server.com 443 +nobind +persist-key +persist-tun +user openvpn +group openvpn + + +ca cacert.pem +cipher AES-256-CBC #xcomment +reneg-sec 0 + +auth-user-pass +auth-nocache + +ping 30 +ping-exit 120 + +# random comment + +script-security 2 + + diff --git a/properties/tests/conf/ping-with-exit.ovpn b/properties/tests/conf/ping-with-exit.ovpn new file mode 100644 index 0000000..b34e02d --- /dev/null +++ b/properties/tests/conf/ping-with-exit.ovpn @@ -0,0 +1,26 @@ +port 2345 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + +ping 10 +ping-exit 120 diff --git a/properties/tests/conf/ping-with-restart.ovpn b/properties/tests/conf/ping-with-restart.ovpn new file mode 100644 index 0000000..7194cc1 --- /dev/null +++ b/properties/tests/conf/ping-with-restart.ovpn @@ -0,0 +1,26 @@ +port 2345 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + +ping 10 +ping-restart 30 diff --git a/properties/tests/conf/pkcs12.ovpn b/properties/tests/conf/pkcs12.ovpn new file mode 100644 index 0000000..12281b0 --- /dev/null +++ b/properties/tests/conf/pkcs12.ovpn @@ -0,0 +1,17 @@ +remote 173.8.149.245 1194 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +pkcs12 keys/mine.p12 + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/port.ovpn b/properties/tests/conf/port.ovpn new file mode 100644 index 0000000..3fbbf5c --- /dev/null +++ b/properties/tests/conf/port.ovpn @@ -0,0 +1,24 @@ +port 2345 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/proxy-http-with-auth.ovpn b/properties/tests/conf/proxy-http-with-auth.ovpn new file mode 100644 index 0000000..6aa41f5 --- /dev/null +++ b/properties/tests/conf/proxy-http-with-auth.ovpn @@ -0,0 +1,32 @@ +client +dev tun + +proto tcp +topology subnet + +rport 2352 +remote test.server.com 443 +nobind +persist-key +persist-tun +user openvpn +group openvpn + +http-proxy-retry +http-proxy proxy.domain.tld 3128 httpauthfile basic + +ca cacert.pem +cipher AES-256-CBC +reneg-sec 0 + +auth-user-pass +auth-nocache + +ping 30 +ping-exit 120 + +# random comment + +script-security 2 + + diff --git a/properties/tests/conf/proxy-http.ovpn b/properties/tests/conf/proxy-http.ovpn new file mode 100644 index 0000000..efaa3f1 --- /dev/null +++ b/properties/tests/conf/proxy-http.ovpn @@ -0,0 +1,32 @@ +client +dev tun + +proto tcp +topology subnet + +rport 2352 +remote aa:bb::1 1194 udp +nobind +persist-key +persist-tun +user openvpn +group openvpn + +http-proxy 10.1.1.1 8080 httpauthfile +http-proxy-retry + +ca cacert.pem +cipher AES-256-CBC +reneg-sec 0 + +auth-user-pass +auth-nocache + +ping 30 +ping-exit 120 + +# random comment + +script-security 2 + + diff --git a/properties/tests/conf/proxy-socks.ovpn b/properties/tests/conf/proxy-socks.ovpn new file mode 100644 index 0000000..8f49bb2 --- /dev/null +++ b/properties/tests/conf/proxy-socks.ovpn @@ -0,0 +1,32 @@ +client +dev tun + +proto tcp +topology subnet + +rport 2352 +remote test.server.com 443 +nobind +persist-key +persist-tun +user openvpn +group openvpn + +socks-proxy 10.1.1.1 1080 +socks-proxy-retry + +ca cacert.pem +cipher AES-256-CBC +reneg-sec 0 + +auth-user-pass +auth-nocache + +ping 30 +ping-exit 120 + +# random comment + +script-security 2 + + diff --git a/properties/tests/conf/route.ovpn b/properties/tests/conf/route.ovpn new file mode 100644 index 0000000..4c09c3d --- /dev/null +++ b/properties/tests/conf/route.ovpn @@ -0,0 +1,26 @@ +route 1.2.3.0 255.255.255.0 1.2.3.254 99 +route 5.6.7.8 255.255.255.252 +route 192.168.0.0 255.255.0.0 192.168.44.1 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/rport.ovpn b/properties/tests/conf/rport.ovpn new file mode 100644 index 0000000..4d09b5a --- /dev/null +++ b/properties/tests/conf/rport.ovpn @@ -0,0 +1,24 @@ +rport 6789 + +remote 173.8.149.245 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key 1 +tls-remote "/CN=myvpn.company.com" + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/static.key b/properties/tests/conf/static.key new file mode 100644 index 0000000..8762c36 --- /dev/null +++ b/properties/tests/conf/static.key @@ -0,0 +1,21 @@ +# +# 2048 bit OpenVPN static key +# +-----BEGIN OpenVPN Static key V1----- +378e209d0fe8efe398afa86bdb19b9a8 +f9cc3ae06e42f9468f97d81724101046 +1722e4888756212c05dd0e9341e28388 +aa6f1ea6fbb46779a2e1ce6db1fcef47 +69bd0266c9e14f02a2f19760e77d2f71 +59f6e96769bcc09eda1786adbbd51a50 +f027a829b0a71106b01a046972b1cd20 +41774be1515f81e8760da576077f543d +75d6deb92c9bfd7760a12b0f05938e7d +63fc0c663cdbb623d3f45fcfcbc2009c +1fc36c7b8ecc147462fb7c8747676574 +3b7bd0d6a89aa90514d453b9f1b92e22 +57bb24180cd867357131ac9972f118b8 +d4cebc0da588fed8ec73b9b9be86962d +1a28946996a012767fae84851c126bab +65fee86c5e72d11c6d10c01728e33000 +-----END OpenVPN Static key V1----- diff --git a/properties/tests/conf/static.ovpn b/properties/tests/conf/static.ovpn new file mode 100644 index 0000000..eae6b67 --- /dev/null +++ b/properties/tests/conf/static.ovpn @@ -0,0 +1,5 @@ +remote 10.11.12.13 +dev tun +ifconfig 10.8.0.2 10.8.0.1 +secret static.key 1 + diff --git a/properties/tests/conf/static2.ovpn b/properties/tests/conf/static2.ovpn new file mode 100644 index 0000000..71e26a4 --- /dev/null +++ b/properties/tests/conf/static2.ovpn @@ -0,0 +1,6 @@ +remote 10.11.12.13 +dev tun +ifconfig 10.8.0.2 10.8.0.1 +secret static.key +key-direction 0 + diff --git a/properties/tests/conf/tls-inline-ca.pem b/properties/tests/conf/tls-inline-ca.pem new file mode 100644 index 0000000..e0c2eb7 Binary files /dev/null and b/properties/tests/conf/tls-inline-ca.pem differ diff --git a/properties/tests/conf/tls-inline-cert.pem b/properties/tests/conf/tls-inline-cert.pem new file mode 100644 index 0000000..352a2fe --- /dev/null +++ b/properties/tests/conf/tls-inline-cert.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDojCCAooCCQCu+mQn9w/PJDANBgkqhkiG9w0BAQ0FADASMRAwDgYDVQQDDAd0 +ZXN0LWNhMB4XDTE2MDEyMjEzMjAwNFoXDTE3MDEyMTEzMjAwNFowFDESMBAGA1UE +AwwJdGVzdC1jZXJ0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv/dC +/LXKu1V9OOTxznvvLvoxtXFsDvywO4qtWcYip9CloNjUD03kJJBzrzAnV+EOCg94 +5Nw6SFMbbZ751H+or6S58pyy+9Iyxu1Uo3ION+1bbeCqcOv+BCMKovuqavlzmN/o +yO4ll4Iz+0CqznwbE4IePG4bKmS2nm11CD9Kw6b/3qz9fdaXb+/DuOlqvLQNHrfm +VnS2Z7HKzNWhac9dLTst0mYrZ/Fs8puSSI83BvGZgzuYdtarJIcMoOzXN7BmO2XZ +EI2iMMXeNLwv65MdJ6MYZ1CAtY7frSVlKiLTrZL83Elz2R66l3MLCng6dI+2f6sM +duFKTb7Mzzlq3Lldt4EeA3vcmzPgH4W8Ihu4IgNSVMTawEnMTW7fvHdZtK7Geqsc +/mY9IJYpwrQkuDlGcB0Nzteg1v+w3kvU79/16lfuzWHlsVvDPBk2UBiXicL45jaD +xARwPNdyFYAglURwcFrpOmq2GGml1qMB6s55K8dzqe+ZmDm1mfVdGseBjTcrBFbi +ZRZWhmY3MSkuQ5FhDDB55U59aGAIeSwv265GDNFv9M/cTV/+SEpzv+o6lROycN/+ +PGC74FT19f9E3nmZu+B0pV5ByP0NARc5tlvGQ2WnuHuNmo6KfNujcqRqZInkk6HS +BPotLss3GZcJ97qkbw1A8oghx29pG8edJy52w/MCAwEAATANBgkqhkiG9w0BAQ0F +AAOCAQEAkUVsxyanQN1iPW3d17hfZ3o0lmSihZkw396FXP34tGUeIvk2EbFHS1Jy +3Gh4r1adB5bil0X1GYU8AFPKaM+CqWagyBAYXwX6YaXb1pzFn8Ixw6t0gRoAW9ex +MW4Eduh8JOYi+KkJaXj5SAVDd3ZDCIwW3rN+jIMy2tvnuWW07UW5HvOZ4qRXyOlZ +mqUBgft97uOiVEor8KEhrBzgGzT72ELOykzZGWEuWWy0ytbPrAc+XyodvylvAGzR +lj74pDerwl/oUl80vRgEl8M1o4nGdoe17SfaGhD7MP+YD2HmY2kTCw8ks70KBpxJ +nCtKkguacJwDtUeh2jpbXZKBQAgqkw== +-----END CERTIFICATE----- diff --git a/properties/tests/conf/tls-inline-key.pem b/properties/tests/conf/tls-inline-key.pem new file mode 100644 index 0000000..d9956fd --- /dev/null +++ b/properties/tests/conf/tls-inline-key.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIJKgIBAAKCAgEAv/dC/LXKu1V9OOTxznvvLvoxtXFsDvywO4qtWcYip9CloNjU +D03kJJBzrzAnV+EOCg945Nw6SFMbbZ751H+or6S58pyy+9Iyxu1Uo3ION+1bbeCq +cOv+BCMKovuqavlzmN/oyO4ll4Iz+0CqznwbE4IePG4bKmS2nm11CD9Kw6b/3qz9 +fdaXb+/DuOlqvLQNHrfmVnS2Z7HKzNWhac9dLTst0mYrZ/Fs8puSSI83BvGZgzuY +dtarJIcMoOzXN7BmO2XZEI2iMMXeNLwv65MdJ6MYZ1CAtY7frSVlKiLTrZL83Elz +2R66l3MLCng6dI+2f6sMduFKTb7Mzzlq3Lldt4EeA3vcmzPgH4W8Ihu4IgNSVMTa +wEnMTW7fvHdZtK7Geqsc/mY9IJYpwrQkuDlGcB0Nzteg1v+w3kvU79/16lfuzWHl +sVvDPBk2UBiXicL45jaDxARwPNdyFYAglURwcFrpOmq2GGml1qMB6s55K8dzqe+Z +mDm1mfVdGseBjTcrBFbiZRZWhmY3MSkuQ5FhDDB55U59aGAIeSwv265GDNFv9M/c +TV/+SEpzv+o6lROycN/+PGC74FT19f9E3nmZu+B0pV5ByP0NARc5tlvGQ2WnuHuN +mo6KfNujcqRqZInkk6HSBPotLss3GZcJ97qkbw1A8oghx29pG8edJy52w/MCAwEA +AQKCAgAlSagvYjiA7vgl5wK5MwWgwGSLc/6jYp3w0t0dRQlSQ4sIlVWLq3uXRp/R +9a6OuV56wcqf2c9QYSRAxNKOXkWr6HleEOYLWCcY0NzR6sOsRWSvESbKTGzI7O2R +/wR5Rv8XQNb8wJV4uofSVBtZhG3V+j5ZSqHoOCvo1iYXdgPVwUiOPlf264n66j3A +W0aqZObvgpUxUfZkafqUkyKJZQgaUxZxefsQc6rP7Twa8AamSKOjBB53ZvdTXxAq +6hZb8N3Kx9vEBV7tzmF9KNi+D5NoMZv55X86xQfZoBvodV9cpeKL/5CLKhbgeC46 +2GOyZH/0iIshRF2kgF1UGzkQqsjzF2YPAgIXYA5nCSln/qf9Xt9/iXzMvkEsD94J +SGxPrjoNpcd0JXsQRiEuxJnQUZrFlP1egFC1sHmGDt9NJ2T1nGFGeaX0yfpjwo8o +wSqYC4/fzFwED80OFNujWQBKeposBztzmYviSh/ls+lAXFPSki+UTld9XmI5Ju/6 +6yMiORUVGNa+/Swc5ymXcbgD0x5lZtDtx7pAkkZJE7apdUTZWo9xgi9/WnBzZozE +PEVVZjmnU7xfcxK2YQbgS5eAAScuh6T+Np4wBJinqdZpoTy33cNu4hquGMAvtfhZ +MHQJ9mQb0ZzrYKYTqC/dCJmHcKozpoRlXExtkKKS1Uu6wCJmsQKCAQEA+L2M2Pb7 +O4vyJle0TVRi6T4s337T9JLXbyPXlD5KBF3VD3S4Wc1eks7oeORE20JeI4WdWbbI +5lF+fZCo7Uwok2SZDbdgVK5NeBl7P2eDWAOTTR+mcZ7XWhR5TD2Nu1fU1AagSnIH +ac+q94vltojt8bGd0+wGPVr1jsUr/uWzS8dCuAttuXl2cgKO2rc1c6AkWGXX1W7d +H283HoFHwbpeulTL0pULD5pFQtDwS1NI+T4Rr/E9lmm3V2/XZS06UklFA/C0ZpE4 +atVXWNPWkObeZP8U84h66jUisO40cHTSQRj6+0dqEYECmmDX1bOIkxGAPfdjhOgd +VNYMQljpyIaKNQKCAQEAxZGGCgn/Ab6oX77R89/8QlJJlJcz5zl+qmKfdVCV2d+p +B7TIlXEMwgxyGzmYQrmPGpLcolRGn+JHi43/8hkGegjhS9jCh5ndRoTQVlMxczR7 +aJH/fh9YVuvIl7hTiIUbuEklbYnuh9tSfGJtZG7gSICjx3YnKgMNbpMRrA00NX0h +qtQS6kE1X4CjNIi4i6uUHziFJ3127kBN9WTzph1DhO5F9IfH91j+qnuzkQlKLoDP +DTnv9dXuhAjOy87ugdNYrgfdlt9Jm36lY9x+WLiuRg1gdCj+6hGxZpgkAO+Hsqcc +0aRyVevBFGk8eiMSkHmMN1XeT/gb0w+DCO90iuCahwKCAQEAvQX2oe5WjzLTSrX9 +i4JkRBF+sjzEP6jTVF8tdTc8skLIJZ2ydnPtuazI1w3JEcJGncHtCH8x/mzRrgQf +i20DrLaW5OiEqPVoY6shkNZN5rWY29QAfXmS9551ay2fpk2hq5p5dvlejtdEeify +4hr+j1xFrwU+3KNh1iQaQfM2pJCBMDFnKbqW+x7chnMRiJOa6x5Bva0pFrlCbskZ +yauiTwEffyDKLgozNgpngSaCXv3/HPA7uDEQJb8VNYsANgX+D3d88DDNacpEPXmG +Jcl8Gc4KkuMVXSQR/9iVOxxbpyKfoBLuFO0wGDcd7gUn9XMoPG7iTt7BY3XiDQ1a +Y4tyPQKCAQEAjDySj1evGdbyfxvcvaX00kLEleOJ5QwLm/frRgOQiplWyvCJHIKl +Uqww5qBIMryyFmO+lr8Jbn3Y2PdPgNJApajd+s9+rXAK//5QP6ZHyIWtP3m6iBTJ +yNEOjps5OAN7vKC3H3yzwt1sPHxFN+/35Z7iIjf87rZB94YPGjg5IeqTVkW4s2zb +7NFLh4Owsvt0ZYDiCzjkjZM5gwFIbVYCUj4ri7pBt5IFGpA50q5saHvn/HRunupe +pnv2Bfb5l0+kd8t/f5M5FVWdIjgluuZEVdcy6uEaqJ0sdi1yCPP9N1Olgi2fNtvk +Lo/QbMWubLzKSZD6/3qWjYdKNLJ74AQzywKCAQEAxHLfZajXY4YYz1BXbsSQrzqq +7bgnZaXIsgK03McCrt5XQY7ghLF9j2w/rQLrvFA5pMZ8x6GKmoy95i6FGHm7i4rd +Cu40r2tRUC5IugVxfa2/MUC4v94JjecwkozwgD0SPGwIQVyBDjewTeoQNXRUYZ/I +hR/fOhfbcpPl9Z/EIkIy5qbCJxzNxG0L3sKMjSlywfC0yazyoaraNtdslHhHO+IP +rwJTkcFBJ3zf3oYYfRJAzAs0IAfUL5XgQUnNarC8uExCjtcs6TAhNEkoopcvVwAM +GV1Yd6yBQHcbi55KeCKYklG7YpX5nqTV5Sk3sTNeUPBcKMS+Mryry8yoTUtCQQ== +-----END RSA PRIVATE KEY----- diff --git a/properties/tests/conf/tls-inline-ta.pem b/properties/tests/conf/tls-inline-ta.pem new file mode 100644 index 0000000..8762c36 --- /dev/null +++ b/properties/tests/conf/tls-inline-ta.pem @@ -0,0 +1,21 @@ +# +# 2048 bit OpenVPN static key +# +-----BEGIN OpenVPN Static key V1----- +378e209d0fe8efe398afa86bdb19b9a8 +f9cc3ae06e42f9468f97d81724101046 +1722e4888756212c05dd0e9341e28388 +aa6f1ea6fbb46779a2e1ce6db1fcef47 +69bd0266c9e14f02a2f19760e77d2f71 +59f6e96769bcc09eda1786adbbd51a50 +f027a829b0a71106b01a046972b1cd20 +41774be1515f81e8760da576077f543d +75d6deb92c9bfd7760a12b0f05938e7d +63fc0c663cdbb623d3f45fcfcbc2009c +1fc36c7b8ecc147462fb7c8747676574 +3b7bd0d6a89aa90514d453b9f1b92e22 +57bb24180cd867357131ac9972f118b8 +d4cebc0da588fed8ec73b9b9be86962d +1a28946996a012767fae84851c126bab +65fee86c5e72d11c6d10c01728e33000 +-----END OpenVPN Static key V1----- diff --git a/properties/tests/conf/tls-inline.ovpn b/properties/tests/conf/tls-inline.ovpn new file mode 100644 index 0000000..96cd453 Binary files /dev/null and b/properties/tests/conf/tls-inline.ovpn differ diff --git a/properties/tests/conf/tls.ovpn b/properties/tests/conf/tls.ovpn new file mode 100644 index 0000000..0e51a22 --- /dev/null +++ b/properties/tests/conf/tls.ovpn @@ -0,0 +1,28 @@ +remote 173.8.149.245 1194 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +float + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-auth keys/46.key +remote-cert-tls server +tls-remote "/CN=myvpn.company.com" +verify-x509-name "C=US, L=Cambridge, CN=GNOME, emailAddress=networkmanager-list@gnome.org" subject + +key-direction 1 + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/tls2.ovpn b/properties/tests/conf/tls2.ovpn new file mode 100644 index 0000000..af21457 --- /dev/null +++ b/properties/tests/conf/tls2.ovpn @@ -0,0 +1,26 @@ +remote 173.8.149.245 1194 +resolv-retry infinite + +dev tun +persist-key +persist-tun +link-mtu 1400 +proto udp +nobind +pull +tls-client + +float + +ca keys/mg8.ca +cert keys/clee.crt +key keys/clee.key + +tls-crypt keys/46.key +remote-cert-tls server +tls-remote "/CN=myvpn.company.com" +verify-x509-name "C=US, L=Cambridge, CN=GNOME, emailAddress=networkmanager-list@gnome.org" subject + +comp-lzo +verb 3 + diff --git a/properties/tests/conf/tun-opts.conf b/properties/tests/conf/tun-opts.conf new file mode 100644 index 0000000..b7d3180 --- /dev/null +++ b/properties/tests/conf/tun-opts.conf @@ -0,0 +1,34 @@ +client +dev tun + +proto udp +topology subnet + +tun-mtu 1300 +mssfix +fragment 1200 + +rport 2352 +remote test.server.com 443 +nobind +persist-key +persist-tun +user openvpn +group openvpn + + +ca cacert.pem +cipher AES-256-CBC +reneg-sec 0 + +auth-user-pass +auth-nocache + +ping 30 +ping-exit 120 + +# random comment + +script-security 2 + + diff --git a/properties/tests/test-import-export.c b/properties/tests/test-import-export.c new file mode 100644 index 0000000..64025ac --- /dev/null +++ b/properties/tests/test-import-export.c @@ -0,0 +1,1239 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * Copyright (C) 2009 Dan Williams, + * + * 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. + * + */ + +#include "nm-default.h" + +#include +#include +#include +#include +#include + +#include "nm-openvpn-editor-plugin.h" +#include "nm-openvpn-editor.h" +#include "import-export.h" +#include "utils.h" + +#include "nm-utils/nm-test-utils.h" + +#define SRCDIR TEST_SRCDIR"/conf" + +#ifdef NM_VPN_OLD +#define TMPDIR TEST_BUILDDIR"/conf-tmp-old" +#else +#define TMPDIR TEST_BUILDDIR"/conf-tmp-new" +#endif + +/*****************************************************************************/ + +static void +_test_nmovpn_remote_parse (const char *str, + const char *exp_host, + const char *exp_port, + const char *exp_proto) +{ + gs_free char *str_free = NULL; + gssize r; + const char *host, *port, *proto; + gs_free_error GError *error = NULL; + + g_assert (exp_host || (!exp_port && !exp_proto)); + + r = nmovpn_remote_parse (str, &str_free, &host, &port, &proto, &error); + if (!exp_host) { + g_assert (r >= 0); + g_assert (error); + return; + } + nmtst_assert_success (r == -1, error); + + g_assert_cmpstr (exp_host, ==, host); + g_assert_cmpstr (exp_port, ==, port); + g_assert_cmpstr (exp_proto, ==, proto); +} + +static void +test_nmovpn_remote_parse (void) +{ + _test_nmovpn_remote_parse ("a", "a", NULL, NULL); + _test_nmovpn_remote_parse ("a:", "a", NULL, NULL); + _test_nmovpn_remote_parse ("t::", "t", NULL, NULL); + _test_nmovpn_remote_parse ("a::", "a::", NULL, NULL); + _test_nmovpn_remote_parse ("[a::]:", "a::", NULL, NULL); + _test_nmovpn_remote_parse ("t:::", "t:", NULL, NULL); + _test_nmovpn_remote_parse ("a:::", "a::", NULL, NULL); + _test_nmovpn_remote_parse ("a:t::", "a:t", NULL, NULL); + _test_nmovpn_remote_parse ("a:b::", "a:b::", NULL, NULL); + _test_nmovpn_remote_parse ("a::udp", "a", NULL, "udp"); + _test_nmovpn_remote_parse ("a:1:", "a", "1", NULL); + _test_nmovpn_remote_parse ("t::1:", "t:", "1", NULL); + _test_nmovpn_remote_parse ("t::1:", "t:", "1", NULL); + _test_nmovpn_remote_parse ("[a:]:1:", "[a:]", "1", NULL); + _test_nmovpn_remote_parse ("a::1:", "a::1", NULL, NULL); + _test_nmovpn_remote_parse ("a::1:1194", "a::1:1194", NULL, NULL); + _test_nmovpn_remote_parse ("[a::1]:1194", "a::1", "1194", NULL); + _test_nmovpn_remote_parse ("a::1194", "a::1194", NULL, NULL); + _test_nmovpn_remote_parse ("a::1194:", "a::1194", NULL, NULL); + _test_nmovpn_remote_parse ("[a:]:1194:", "[a:]", "1194", NULL); + _test_nmovpn_remote_parse ("a:1:tcp", "a", "1", "tcp"); + _test_nmovpn_remote_parse ("aa:bb::1:1194:udp", NULL, NULL, NULL); + _test_nmovpn_remote_parse ("[aa:bb::1]:1194:udp", "aa:bb::1", "1194", "udp"); + _test_nmovpn_remote_parse ("[aa:bb::1]::udp", "aa:bb::1", NULL, "udp"); + _test_nmovpn_remote_parse ("aa:bb::1::udp", "aa:bb::1", NULL, "udp"); + _test_nmovpn_remote_parse ("aa:bb::1::", "aa:bb::1", NULL, NULL); + _test_nmovpn_remote_parse ("abc.com:1234:udp", "abc.com", "1234", "udp"); + _test_nmovpn_remote_parse ("ovpnserver.company.com:443", "ovpnserver.company.com", "443", NULL); + _test_nmovpn_remote_parse ("vpn.example.com::tcp", "vpn.example.com", NULL, "tcp"); + _test_nmovpn_remote_parse ("dead:beef::1:1194", "dead:beef::1:1194", NULL, NULL); + _test_nmovpn_remote_parse ("dead:beef::1:1194", "dead:beef::1:1194", NULL, NULL); + _test_nmovpn_remote_parse ("2001:dead:beef::1194::", "2001:dead:beef::1194", NULL, NULL); +} + +/*****************************************************************************/ + +static NMVpnEditorPlugin * +_create_plugin (void) +{ + NMVpnEditorPlugin *plugin; + GError *error = NULL; + + plugin = nm_vpn_editor_plugin_factory (&error); + g_assert_no_error (error); + g_assert (OPENVPN_IS_EDITOR_PLUGIN (plugin)); + return plugin; +} +#define _CREATE_PLUGIN(plugin) \ + gs_unref_object NMVpnEditorPlugin *plugin = _create_plugin () + +/*****************************************************************************/ + +static NMConnection * +get_basic_connection (NMVpnEditorPlugin *plugin, + const char *dir, + const char *filename) +{ + NMConnection *connection; + GError *error = NULL; + char *pcf; + + pcf = g_build_path ("/", dir, filename, NULL); + g_assert (pcf); + + connection = nm_vpn_editor_plugin_import (plugin, pcf, &error); + g_assert_no_error (error); + g_assert (connection); + + g_free (pcf); + return connection; +} + +#define _check_item(s_vpn, item, expected) \ + G_STMT_START { \ + NMSettingVpn *_s_vpn = (s_vpn); \ + \ + g_assert (_s_vpn); \ + g_assert_cmpstr (nm_setting_vpn_get_data_item (_s_vpn, (item)), ==, (expected)); \ + } G_STMT_END + +#define _check_secret(s_vpn, item, expected) \ + G_STMT_START { \ + NMSettingVpn *_s_vpn = (s_vpn); \ + \ + g_assert (_s_vpn); \ + g_assert_cmpstr (nm_setting_vpn_get_secret (_s_vpn, (item)), ==, (expected)); \ + } G_STMT_END + +/*****************************************************************************/ + +static void +test_password_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + char *expected_cacert; + + connection = get_basic_connection (plugin, SRCDIR, "password.conf"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "password"); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_PASSWORD); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, "0"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "test.server.com:443"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, "2352"); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, "AES-256-CBC"); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + + expected_cacert = g_build_filename (SRCDIR, "cacert.pem", NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CA, expected_cacert); + g_free (expected_cacert); + + /* Secrets */ + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_object_unref (connection); +} + +static void +save_one_key (const char *key, const char *value, gpointer user_data) +{ + GSList **list = user_data; + + *list = g_slist_append (*list, g_strdup (key)); +} + +static void +remove_secrets (NMConnection *connection) +{ + NMSettingVpn *s_vpn; + GSList *keys = NULL, *iter; + + s_vpn = nm_connection_get_setting_vpn (connection); + if (!s_vpn) + return; + + nm_setting_vpn_foreach_secret (s_vpn, save_one_key, &keys); + for (iter = keys; iter; iter = g_slist_next (iter)) + nm_setting_vpn_remove_secret (s_vpn, (const char *) iter->data); + + g_slist_foreach (keys, (GFunc) g_free, NULL); + g_slist_free (keys); +} + +static void +test_export_compare (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMConnection *reimported; + char *path; + gboolean success; + GError *error = NULL; + const char *file, *exported_name; + + nmtst_test_data_unpack (test_data, &file, &exported_name); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + path = g_build_path ("/", TMPDIR, exported_name, NULL); + success = nm_vpn_editor_plugin_export (plugin, path, connection, &error); + g_assert_no_error (error); + g_assert (success); + + /* Now re-import it and compare the connections to ensure they are the same */ + reimported = get_basic_connection (plugin, TMPDIR, exported_name); + (void) unlink (path); + g_assert (reimported); + + /* Clear secrets first, since they don't get exported, and thus would + * make the connection comparison below fail. + */ + remove_secrets (connection); + g_assert (nm_connection_compare (connection, reimported, NM_SETTING_COMPARE_FLAG_EXACT)); + + g_object_unref (reimported); + g_object_unref (connection); + g_free (path); +} + +static void +test_tls_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + char *expected_path; + + connection = get_basic_connection (plugin, SRCDIR, "tls.ovpn"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "tls"); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, "adaptive"); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "173.8.149.245:1194"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TLS_REMOTE, "/CN=myvpn.company.com"); + _check_item (s_vpn, NM_OPENVPN_KEY_VERIFY_X509_NAME, + "subject:C=US, L=Cambridge, CN=GNOME, emailAddress=networkmanager-list@gnome.org"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS, "server"); + + expected_path = g_strdup_printf ("%s/keys/mg8.ca", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CA, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/clee.crt", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/clee.key", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/46.key", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, expected_path); + g_free (expected_path); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, "1"); + + /* Secrets */ + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_object_unref (connection); +} + +static void +test_tls_import_2 (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + char *expected_path; + + connection = get_basic_connection (plugin, SRCDIR, "tls2.ovpn"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "tls2"); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, "adaptive"); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "173.8.149.245:1194"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TLS_REMOTE, "/CN=myvpn.company.com"); + _check_item (s_vpn, NM_OPENVPN_KEY_VERIFY_X509_NAME, + "subject:C=US, L=Cambridge, CN=GNOME, emailAddress=networkmanager-list@gnome.org"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS, "server"); + + expected_path = g_strdup_printf ("%s/keys/mg8.ca", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CA, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/clee.crt", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/clee.key", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/46.key", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_TLS_CRYPT, expected_path); + g_free (expected_path); + + /* Secrets */ + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_object_unref (connection); +} + +static void +test_file_contents (const char *id, + const char *dir, + NMSettingVpn *s_vpn, + char *item) { + const char *path; + char *path2; + char *contents; + char *expected_contents; + gsize length; + gsize expected_length; + char *test; + + test = g_strdup_printf("%s-%s", id, item); + + path = nm_setting_vpn_get_data_item(s_vpn, item); + g_assert (g_file_get_contents (path, &contents, &length, NULL)); + + path2 = g_strdup_printf ("%s/%s-%s.pem", dir, id, item); + g_assert (g_file_get_contents (path2, &expected_contents, &expected_length, NULL)); + + g_assert_cmpmem (contents, length, expected_contents, expected_length); + + g_free (contents); + g_free (expected_contents); + g_free (path2); + g_free (test); +} + +static void +test_tls_inline_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + const char *expected_id = "tls-inline"; + + connection = get_basic_connection (plugin, SRCDIR, "tls-inline.ovpn"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, expected_id); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, "adaptive"); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "173.8.149.245:1194"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TLS_REMOTE, "/CN=myvpn.company.com"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS, "server"); + + test_file_contents (expected_id, SRCDIR, s_vpn, NM_OPENVPN_KEY_CA); + test_file_contents (expected_id, SRCDIR, s_vpn, NM_OPENVPN_KEY_CERT); + test_file_contents (expected_id, SRCDIR, s_vpn, NM_OPENVPN_KEY_KEY); + test_file_contents (expected_id, SRCDIR, s_vpn, NM_OPENVPN_KEY_TA); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, "1"); + + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_assert (unlink (TMPDIR"/tls-inline-ca.pem") == 0); + g_assert (unlink (TMPDIR"/tls-inline-cert.pem") == 0); + g_assert (unlink (TMPDIR"/tls-inline-key.pem") == 0); + g_assert (unlink (TMPDIR"/tls-inline-tls-auth.pem") == 0); + + g_object_unref (connection); +} + +static void +test_pkcs12_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + const char *expected_id = "pkcs12"; + char *expected_path; + + connection = get_basic_connection (plugin, SRCDIR, "pkcs12.ovpn"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, expected_id); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, "adaptive"); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "173.8.149.245:1194"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + + expected_path = g_strdup_printf ("%s/keys/mine.p12", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CA, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/mine.p12", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, expected_path); + g_free (expected_path); + + expected_path = g_strdup_printf ("%s/keys/mine.p12", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, expected_path); + g_free (expected_path); + + /* Secrets */ + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_object_unref (connection); +} + +static void +test_non_utf8_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + char *expected_path; + const char *charset = NULL; + + /* Change charset to ISO-8859-15 to match iso885915.ovpn */ + g_get_charset (&charset); + setlocale (LC_ALL, "de_DE@euro"); + connection = get_basic_connection (plugin, SRCDIR, "iso885915.ovpn"); + setlocale (LC_ALL, charset); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, "iso885915"); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + expected_path = g_strdup_printf ("%s/%s", SRCDIR, "Att\\344taenko.pem"); + _check_item (s_vpn, NM_OPENVPN_KEY_CA, expected_path); + g_free (expected_path); + + g_object_unref (connection); +} + +static void +test_static_key_import (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + const char *file, *expected_id, *expected_dir; + char *expected_path; + + nmtst_test_data_unpack (test_data, &file, &expected_id, &expected_dir); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, expected_id); + g_assert (!nm_setting_connection_get_uuid (s_con)); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_STATIC_KEY); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "10.11.12.13"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, expected_dir); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, "10.8.0.2"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, "10.8.0.1"); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + + expected_path = g_strdup_printf ("%s/static.key", SRCDIR); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, expected_path); + g_free (expected_path); + + /* Secrets */ + _check_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD, NULL); + _check_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS, NULL); + + g_object_unref (connection); +} + +static void +test_port_import (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + const char *file, *expected_id, *expected_port; + + nmtst_test_data_unpack (test_data, &file, &expected_id, &expected_port); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + g_assert_cmpstr (nm_setting_connection_get_id (s_con), ==, expected_id); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, expected_port); + + g_object_unref (connection); +} + +static void +test_ping_import (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingVpn *s_vpn; + const char *file, *expected_ping, *expected_ping_exit, *expected_ping_restart; + + nmtst_test_data_unpack (test_data, &file, &expected_ping, &expected_ping_exit, &expected_ping_restart); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_PING, expected_ping); + _check_item (s_vpn, NM_OPENVPN_KEY_PING_EXIT, expected_ping_exit); + _check_item (s_vpn, NM_OPENVPN_KEY_PING_RESTART, expected_ping_restart); + + g_object_unref (connection); +} + +static void +test_tun_opts_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + + connection = get_basic_connection (plugin, SRCDIR, "tun-opts.conf"); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_MSSFIX, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_TUNNEL_MTU, "1300"); + _check_item (s_vpn, NM_OPENVPN_KEY_FRAGMENT_SIZE, "1200"); + + g_object_unref (connection); +} + +static void +test_proxy_http_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + + connection = get_basic_connection (plugin, SRCDIR, "proxy-http.ovpn"); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_PASSWORD); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, "0"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "[aa:bb::1]:1194:udp"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, "2352"); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, "AES-256-CBC"); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE, "http"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER, "10.1.1.1"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_PORT, "8080"); + _check_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, "myusername"); + _check_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, "mypassword"); + + g_object_unref (connection); +} + +#define PROXY_HTTP_EXPORTED_NAME "proxy-http.ovpntest" +static void +test_proxy_http_export (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMConnection *reimported; + char *path; + gboolean success; + GError *error = NULL; + + connection = get_basic_connection (plugin, SRCDIR, "proxy-http.ovpn"); + g_assert (connection); + + path = g_build_path ("/", TMPDIR, PROXY_HTTP_EXPORTED_NAME, NULL); + success = nm_vpn_editor_plugin_export (plugin, path, connection, &error); + g_assert_no_error (error); + g_assert (success); + + /* Now re-import it and compare the connections to ensure they are the same */ + reimported = get_basic_connection (plugin, TMPDIR, PROXY_HTTP_EXPORTED_NAME); + (void) unlink (path); + g_free (path); + g_assert (reimported); + + g_assert (nm_connection_compare (connection, reimported, NM_SETTING_COMPARE_FLAG_EXACT)); + + /* Unlink the proxy authfile */ + path = g_strdup_printf ("%s/%s-httpauthfile", TMPDIR, PROXY_HTTP_EXPORTED_NAME); + (void) unlink (path); + g_free (path); + + g_object_unref (reimported); + g_object_unref (connection); +} + +static void +test_proxy_http_with_auth_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + + connection = get_basic_connection (plugin, SRCDIR, "proxy-http-with-auth.ovpn"); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_PASSWORD); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, "0"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "test.server.com:443"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, "2352"); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, "AES-256-CBC"); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE, "http"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER, "proxy.domain.tld"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_PORT, "3128"); + _check_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, "myusername"); + _check_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, "mypassword"); + + g_object_unref (connection); +} + +static void +test_proxy_socks_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + + connection = get_basic_connection (plugin, SRCDIR, "proxy-socks.ovpn"); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_PASSWORD); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, "tun"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP, "yes"); + _check_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_FLOAT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS, "0"); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE, "test.server.com:443"); + _check_item (s_vpn, NM_OPENVPN_KEY_PORT, "2352"); + _check_item (s_vpn, NM_OPENVPN_KEY_CERT, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_TA_DIR, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_CIPHER, "AES-256-CBC"); + _check_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_AUTH, NULL); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE, "socks"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER, "10.1.1.1"); + _check_item (s_vpn, NM_OPENVPN_KEY_PROXY_PORT, "1080"); + + g_object_unref (connection); +} + +static void +test_keysize_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + + connection = get_basic_connection (plugin, SRCDIR, "keysize.ovpn"); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_KEYSIZE, "512"); + + g_object_unref (connection); +} + +static void +test_device_import (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + const char *file, *expected_dev, *expected_devtype; + + nmtst_test_data_unpack (test_data, &file, &expected_dev, &expected_devtype); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_DEV, expected_dev); + _check_item (s_vpn, NM_OPENVPN_KEY_DEV_TYPE, expected_devtype); + + g_object_unref (connection); +} + +static void +test_mtu_disc_import (gconstpointer test_data) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingVpn *s_vpn; + const char *file, *expected_val; + + nmtst_test_data_unpack (test_data, &file, &expected_val); + + connection = get_basic_connection (plugin, SRCDIR, file); + g_assert (connection); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_MTU_DISC, expected_val); + + g_object_unref (connection); +} + +static void +test_route_import (void) +{ + _CREATE_PLUGIN (plugin); + NMConnection *connection; + NMSettingConnection *s_con; + NMSettingIPConfig *s_ip4; + NMSettingVpn *s_vpn; + int num_routes; + const char *expected_dest1 = "1.2.3.0"; + guint32 expected_prefix1 = 24; + const char *expected_nh1 = "1.2.3.254"; + gint64 expected_metric1 = 99; + const char *expected_dest2 = "5.6.7.8"; + guint32 expected_prefix2 = 30; + gint64 expected_metric2 = -1; + const char *expected_dest3 = "192.168.0.0"; + guint32 expected_prefix3 = 16; + const char *expected_nh3 = "192.168.44.1"; + gint64 expected_metric3 = -1; + + connection = get_basic_connection (plugin, SRCDIR, "route.ovpn"); + g_assert (connection); + + /* Connection setting */ + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + /* VPN setting */ + s_vpn = nm_connection_get_setting_vpn (connection); + g_assert (s_vpn); + + /* Data items */ + _check_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE, NM_OPENVPN_CONTYPE_TLS); + + /* IP4 setting */ + s_ip4 = nm_connection_get_setting_ip4_config (connection); + g_assert (s_ip4); +#ifdef NM_VPN_OLD + { + NMIP4Route *route; + const char *expected_nh2 = "0.0.0.0"; + +#define METR(metr) ((metr) == -1 ? 0 : ((guint32) (metr))) + + num_routes = nm_setting_ip4_config_get_num_routes (s_ip4); + g_assert_cmpint (num_routes, ==, 3); + + /* route 1 */ + route = nm_setting_ip4_config_get_route (s_ip4, 0); + g_assert_cmpint (nm_ip4_route_get_dest (route), ==, nmtst_inet4_from_string (expected_dest1)); + g_assert_cmpint (nm_ip4_route_get_prefix (route), ==, expected_prefix1); + g_assert_cmpint (nm_ip4_route_get_next_hop (route), ==, nmtst_inet4_from_string (expected_nh1)); + g_assert_cmpint (nm_ip4_route_get_metric (route), ==, METR (expected_metric1)); + + /* route 2 */ + route = nm_setting_ip4_config_get_route (s_ip4, 1); + g_assert_cmpint (nm_ip4_route_get_dest (route), ==, nmtst_inet4_from_string (expected_dest2)); + g_assert_cmpint (nm_ip4_route_get_prefix (route), ==, expected_prefix2); + g_assert_cmpint (nm_ip4_route_get_next_hop (route), ==, nmtst_inet4_from_string (expected_nh2)); + g_assert_cmpint (nm_ip4_route_get_metric (route), ==, METR (expected_metric2)); + + /* route 3 */ + route = nm_setting_ip4_config_get_route (s_ip4, 2); + g_assert_cmpint (nm_ip4_route_get_dest (route), ==, nmtst_inet4_from_string (expected_dest3)); + g_assert_cmpint (nm_ip4_route_get_prefix (route), ==, expected_prefix3); + g_assert_cmpint (nm_ip4_route_get_next_hop (route), ==, nmtst_inet4_from_string (expected_nh3)); + g_assert_cmpint (nm_ip4_route_get_metric (route), ==, METR (expected_metric3)); + } +#else + { + NMIPRoute *route; + + num_routes = nm_setting_ip_config_get_num_routes (s_ip4); + g_assert_cmpint (num_routes, ==, 3); + + /* route 1 */ + route = nm_setting_ip_config_get_route (s_ip4, 0); + g_assert_cmpstr (nm_ip_route_get_dest (route), ==, expected_dest1); + g_assert_cmpint (nm_ip_route_get_prefix (route), ==, expected_prefix1); + g_assert_cmpstr (nm_ip_route_get_next_hop (route), ==, expected_nh1); + g_assert_cmpint (nm_ip_route_get_metric (route), ==, expected_metric1); + + /* route 2 */ + route = nm_setting_ip_config_get_route (s_ip4, 1); + g_assert_cmpstr (nm_ip_route_get_dest (route), ==, expected_dest2); + g_assert_cmpint (nm_ip_route_get_prefix (route), ==, expected_prefix2); + g_assert_cmpstr (nm_ip_route_get_next_hop (route), ==, NULL); + g_assert_cmpint (nm_ip_route_get_metric (route), ==, expected_metric2); + + /* route 3 */ + route = nm_setting_ip_config_get_route (s_ip4, 2); + g_assert_cmpstr (nm_ip_route_get_dest (route), ==, expected_dest3); + g_assert_cmpint (nm_ip_route_get_prefix (route), ==, expected_prefix3); + g_assert_cmpstr (nm_ip_route_get_next_hop (route), ==, expected_nh3); + g_assert_cmpint (nm_ip_route_get_metric (route), ==, expected_metric3); + } +#endif + + g_object_unref (connection); +} + +/*****************************************************************************/ + +static void +do_test_args_parse_impl (const char *line, + gboolean expects_success, + ...) +{ + va_list ap; + guint i; + const char *s; + const char *expected_str[100] = { NULL }; + gboolean again = TRUE; + gs_free char *line_again = NULL; + gsize len; + + va_start (ap, expects_success); + i = 0; + do { + s = va_arg (ap, const char *); + g_assert (i < G_N_ELEMENTS (expected_str)); + expected_str[i++] = s; + } while (s); + va_end (ap); + + len = strlen (line); + +do_again: + { + gs_free const char **p = NULL; + gs_free char *line_error = NULL; + + if (!_nmovpn_test_args_parse_line (line, len, &p, &line_error)) { + g_assert (!expects_success); + g_assert (line_error && line_error[0]); + g_assert (!p); + } else { + g_assert (expects_success); + g_assert (!line_error); + + if (expected_str[0] == NULL) { + g_assert (!p); + } else { + g_assert (p); + for (i = 0; TRUE; i++) { + g_assert_cmpstr (p[i], ==, expected_str[i]); + if (expected_str[i] == NULL) + break; + if (i > 0) + g_assert (p[i] == &((p[i - 1])[strlen (p[i - 1]) + 1])); + } + g_assert (p[0] == (const char *) (&p[i + 1])); + } + } + } + + if (again) { + /* append some gibberish. Ensure it's ignored. */ + line = line_again = g_strconcat (line, "X", NULL); + again = FALSE; + goto do_again; + } +} +#define do_test_args_parse_line(...) do_test_args_parse_impl (__VA_ARGS__, NULL) + +static void +test_args_parse_line (void) +{ + do_test_args_parse_line ("", TRUE); + do_test_args_parse_line (" ", TRUE); + do_test_args_parse_line (" \t", TRUE); + do_test_args_parse_line (" \r", TRUE); + do_test_args_parse_line ("a", TRUE, "a"); + do_test_args_parse_line (" ba ", TRUE, "ba"); + do_test_args_parse_line (" b a ", TRUE, "b", "a"); + do_test_args_parse_line (" b \\ \\a ", TRUE, "b", " a"); + do_test_args_parse_line ("\\ b \\ \\a ", TRUE, " b", " a"); + do_test_args_parse_line ("'\\ b \\ \\a '", TRUE, "\\ b \\ \\a "); + do_test_args_parse_line ("\"\\ b \\ \\a \"a'b'", TRUE, " b a ", "a'b'"); + do_test_args_parse_line ("\"\\ b \\ \\a \"a\\ 'b'", TRUE, " b a ", "a 'b'"); + do_test_args_parse_line ("\"\\ b \\ \\a \"a\\ 'b' sd\\ \t", TRUE, " b a ", "a 'b'", "sd "); + + do_test_args_parse_line ("\"adfdaf adf ", FALSE); + do_test_args_parse_line ("\"adfdaf adf \\\"", FALSE); + do_test_args_parse_line ("\"\\ b \\ \\a \"a\\ 'b' sd\\", FALSE); +} + +/*****************************************************************************/ + +NMTST_DEFINE (); + +int main (int argc, char **argv) +{ + int errsv, result; + + _nmovpn_test_temp_path = TMPDIR; + + nmtst_init (&argc, &argv, TRUE); + + if (mkdir (TMPDIR, 0755) != 0) { + errsv = errno; + if (errsv != EEXIST) + g_error ("failed creating \"%s\": %s", TMPDIR, g_strerror (errsv)); + } + +#define _add_test_func_simple(func) g_test_add_func ("/ovpn/properties/" #func, func) +#define _add_test_func(detail, func, ...) nmtst_add_test_func ("/ovpn/properties/" detail, func, ##__VA_ARGS__) + + _add_test_func_simple (test_nmovpn_remote_parse); + + _add_test_func_simple (test_password_import); + _add_test_func ("password-export", test_export_compare, "password.conf", "password.ovpntest"); + + _add_test_func_simple (test_tls_import); + _add_test_func_simple (test_tls_inline_import); + _add_test_func ("tls-export", test_export_compare, "tls.ovpn", "tls.ovpntest"); + + _add_test_func_simple (test_tls_import_2); + _add_test_func ("tls2-export", test_export_compare, "tls2.ovpn", "tls2.ovpntest"); + + _add_test_func_simple (test_pkcs12_import); + _add_test_func ("pkcs12-export", test_export_compare, "pkcs12.ovpn", "pkcs12.ovpntest"); + + _add_test_func_simple (test_non_utf8_import); + + _add_test_func ("static-import-1", test_static_key_import, "static.ovpn", "static", "1"); + _add_test_func ("static-import-2", test_static_key_import, "static2.ovpn", "static2", "0"); + _add_test_func ("static", test_export_compare, "static.ovpn", "static.ovpntest"); + + _add_test_func ("port-import", test_port_import, "port.ovpn", "port", "2345"); + _add_test_func ("port-export", test_export_compare, "port.ovpn", "port.ovpntest"); + + _add_test_func ("rport-import", test_port_import, "rport.ovpn", "rport", "6789"); + _add_test_func ("rport-export", test_export_compare, "rport.ovpn", "rport.ovpntest"); + + _add_test_func_simple (test_tun_opts_import); + _add_test_func ("tun-opts-export", test_export_compare, "tun-opts.conf", "tun-opts.ovpntest"); + + _add_test_func ("ping-with-exit-import", test_ping_import, "ping-with-exit.ovpn", "10", "120", NULL); + _add_test_func ("ping-with-restart-import", test_ping_import, "ping-with-restart.ovpn", "10", NULL, "30"); + + _add_test_func ("ping-with-exit-export", test_export_compare, "ping-with-exit.ovpn", "ping-with-exit.ovpntest"); + _add_test_func ("ping-with-restart-export", test_export_compare, "ping-with-restart.ovpn", "ping-with-restart.ovpntest"); + + _add_test_func ("keepalive-import", test_ping_import, "keepalive.ovpn", "10", NULL, "30"); + _add_test_func ("keepalive-export", test_export_compare, "keepalive.ovpn", "keepalive.ovpntest"); + + _add_test_func_simple (test_proxy_http_import); + _add_test_func_simple (test_proxy_http_export); + + _add_test_func_simple (test_proxy_http_with_auth_import); + + _add_test_func_simple (test_proxy_socks_import); + _add_test_func ("proxy-socks-export", test_export_compare, "proxy-socks.ovpn", "proxy-socks.ovpntest"); + + _add_test_func_simple (test_keysize_import); + _add_test_func ("keysize-export", test_export_compare, "keysize.ovpn", "keysize.ovpntest"); + + _add_test_func ("device-import-default", test_device_import, "device.ovpn", "company0", "tun"); + _add_test_func ("device-export-default", test_export_compare, "device.ovpn", "device.ovpntest"); + + _add_test_func ("device-import-notype", test_device_import, "device-notype.ovpn", "tap", NULL); + _add_test_func ("device-export-notype", test_export_compare, "device-notype.ovpn", "device-notype.ovpntest"); + + _add_test_func ("mtu-disc-import", test_mtu_disc_import, "mtu-disc.ovpn", "yes"); + _add_test_func ("mtu-disc-export", test_export_compare, "mtu-disc.ovpn", "mtu-disc.ovpntest"); + + _add_test_func_simple (test_route_import); + _add_test_func ("route-export", test_export_compare, "route.ovpn", "route.ovpntest"); + + _add_test_func_simple (test_args_parse_line); + + result = g_test_run (); + if (result != EXIT_SUCCESS) + return result; + + if (rmdir (TMPDIR) != 0) { + errsv = errno; + g_error ("failed deleting %s: %s", TMPDIR, g_strerror (errsv)); + } + + return EXIT_SUCCESS; +} + diff --git a/shared/README b/shared/README new file mode 100644 index 0000000..3fe41ef --- /dev/null +++ b/shared/README @@ -0,0 +1,9 @@ +The files in the "shared/" directory are used by all components +inside the VPN plugin repository (src, properties, auth-dialog). + +The files in shared/nm-utils are copied from NetworkManager +repository and used as is: +Do *not* modify these files locally so that they don't diverge +from their original. Fix/extend them in their respective origin +first, and re-import the files as a whole. + diff --git a/shared/nm-default.h b/shared/nm-default.h new file mode 100644 index 0000000..4aeb62f --- /dev/null +++ b/shared/nm-default.h @@ -0,0 +1,123 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager -- Network link manager + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2015 Red Hat, Inc. + */ + +#ifndef __NM_DEFAULT_H__ +#define __NM_DEFAULT_H__ + +/* makefiles define NETWORKMANAGER_COMPILATION for compiling NetworkManager. + * Depending on which parts are compiled, different values are set. */ +#define NM_NETWORKMANAGER_COMPILATION_DEFAULT 0x0001 +#define NM_NETWORKMANAGER_COMPILATION_LIB_BASE 0x0002 +#define NM_NETWORKMANAGER_COMPILATION_LIB_EDITOR 0x0004 +#define NM_NETWORKMANAGER_COMPILATION_LIB (0x0002 | 0x0004) + +#ifndef NETWORKMANAGER_COMPILATION +/* For convenience, we don't require our Makefile.am to define + * -DNETWORKMANAGER_COMPILATION. As we now include this internal header, + * we know we do a NETWORKMANAGER_COMPILATION. */ +#define NETWORKMANAGER_COMPILATION NM_NETWORKMANAGER_COMPILATION_DEFAULT +#endif + +/*****************************************************************************/ + +#include + +/* always include these headers for our internal source files. */ + +#include "nm-utils/nm-glib.h" +#include "nm-utils/gsystem-local-alloc.h" +#include "nm-utils/nm-macros-internal.h" + +#include "nm-version.h" +#include "nm-service-defines.h" + +/*****************************************************************************/ + +#if ((NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_LIB) + +#include + +#else + +#include + +#endif /* NM_NETWORKMANAGER_COMPILATION_LIB */ + +/*****************************************************************************/ + +#ifdef NM_VPN_OLD + +#define NM_VPN_LIBNM_COMPAT +#include +#include +#include +#include +#include +#include +#include + +#define nm_simple_connection_new nm_connection_new +#define NM_SETTING_IP_CONFIG NM_SETTING_IP4_CONFIG +#define NM_SETTING_IP_CONFIG_METHOD NM_SETTING_IP4_CONFIG_METHOD +#define NM_SETTING_IP_CONFIG_NEVER_DEFAULT NM_SETTING_IP4_CONFIG_NEVER_DEFAULT +#define NMSettingIPConfig NMSettingIP4Config + +#define NMV_EDITOR_PLUGIN_ERROR NM_SETTING_VPN_ERROR +#define NMV_EDITOR_PLUGIN_ERROR_FAILED NM_SETTING_VPN_ERROR_UNKNOWN +#define NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY NM_SETTING_VPN_ERROR_INVALID_PROPERTY +#define NMV_EDITOR_PLUGIN_ERROR_MISSING_PROPERTY NM_SETTING_VPN_ERROR_MISSING_PROPERTY +#define NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN NM_SETTING_VPN_ERROR_UNKNOWN +#define NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_READABLE NM_SETTING_VPN_ERROR_UNKNOWN +#define NMV_EDITOR_PLUGIN_ERROR_FILE_INVALID NM_SETTING_VPN_ERROR_UNKNOWN + +#define _nm_utils_is_valid_iface_name(n) nm_utils_iface_valid_name(n) + +#else /* !NM_VPN_OLD */ + +#include + +#define NMV_EDITOR_PLUGIN_ERROR NM_CONNECTION_ERROR +#define NMV_EDITOR_PLUGIN_ERROR_FAILED NM_CONNECTION_ERROR_FAILED +#define NMV_EDITOR_PLUGIN_ERROR_INVALID_PROPERTY NM_CONNECTION_ERROR_INVALID_PROPERTY +#define NMV_EDITOR_PLUGIN_ERROR_MISSING_PROPERTY NM_CONNECTION_ERROR_MISSING_PROPERTY +#define NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_VPN NM_CONNECTION_ERROR_FAILED +#define NMV_EDITOR_PLUGIN_ERROR_FILE_NOT_READABLE NM_CONNECTION_ERROR_FAILED +#define NMV_EDITOR_PLUGIN_ERROR_FILE_INVALID NM_CONNECTION_ERROR_FAILED + +#define _nm_utils_is_valid_iface_name(n) nm_utils_is_valid_iface_name(n, NULL) + +#endif /* NM_VPN_OLD */ + +/*****************************************************************************/ + +#if (NETWORKMANAGER_COMPILATION) & NM_NETWORKMANAGER_COMPILATION_LIB_EDITOR + +#ifdef NM_VPN_OLD +#include +#else /* NM_VPN_OLD */ +#include +#endif /* NM_VPN_OLD */ + +#endif /* NM_NETWORKMANAGER_COMPILATION_LIB_EDITOR */ + +/*****************************************************************************/ + +#endif /* __NM_DEFAULT_H__ */ diff --git a/shared/nm-service-defines.h b/shared/nm-service-defines.h new file mode 100644 index 0000000..513fec4 --- /dev/null +++ b/shared/nm-service-defines.h @@ -0,0 +1,118 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * Copyright (C) 2005 - 2008 Tim Niemueller + * Copyright (C) 2005 - 2008 Dan Williams + * + * 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. + * + */ + +#ifndef __NM_SERVICE_DEFINES_H__ +#define __NM_SERVICE_DEFINES_H__ + +#define NM_VPN_SERVICE_TYPE_OPENVPN "org.freedesktop.NetworkManager.openvpn" + +#define NM_DBUS_SERVICE_OPENVPN "org.freedesktop.NetworkManager.openvpn" +#define NM_DBUS_INTERFACE_OPENVPN "org.freedesktop.NetworkManager.openvpn" +#define NM_DBUS_PATH_OPENVPN "/org/freedesktop/NetworkManager/openvpn" + +#define NM_OPENVPN_KEY_AUTH "auth" +#define NM_OPENVPN_KEY_CA "ca" +#define NM_OPENVPN_KEY_CERT "cert" +#define NM_OPENVPN_KEY_CIPHER "cipher" +#define NM_OPENVPN_KEY_KEYSIZE "keysize" +#define NM_OPENVPN_KEY_COMP_LZO "comp-lzo" +#define NM_OPENVPN_KEY_CONNECTION_TYPE "connection-type" +#define NM_OPENVPN_KEY_FLOAT "float" +#define NM_OPENVPN_KEY_FRAGMENT_SIZE "fragment-size" +#define NM_OPENVPN_KEY_KEY "key" +#define NM_OPENVPN_KEY_LOCAL_IP "local-ip" /* ??? */ +#define NM_OPENVPN_KEY_MSSFIX "mssfix" +#define NM_OPENVPN_KEY_MTU_DISC "mtu-disc" +#define NM_OPENVPN_KEY_NS_CERT_TYPE "ns-cert-type" +#define NM_OPENVPN_KEY_PING "ping" +#define NM_OPENVPN_KEY_PING_EXIT "ping-exit" +#define NM_OPENVPN_KEY_PING_RESTART "ping-restart" +#define NM_OPENVPN_KEY_PORT "port" +#define NM_OPENVPN_KEY_PROTO_TCP "proto-tcp" +#define NM_OPENVPN_KEY_PROXY_TYPE "proxy-type" +#define NM_OPENVPN_KEY_PROXY_SERVER "proxy-server" +#define NM_OPENVPN_KEY_PROXY_PORT "proxy-port" +#define NM_OPENVPN_KEY_PROXY_RETRY "proxy-retry" +#define NM_OPENVPN_KEY_HTTP_PROXY_USERNAME "http-proxy-username" +#define NM_OPENVPN_KEY_REMOTE "remote" +#define NM_OPENVPN_KEY_REMOTE_RANDOM "remote-random" +#define NM_OPENVPN_KEY_REMOTE_IP "remote-ip" +#define NM_OPENVPN_KEY_STATIC_KEY "static-key" +#define NM_OPENVPN_KEY_STATIC_KEY_DIRECTION "static-key-direction" +#define NM_OPENVPN_KEY_TA "ta" +#define NM_OPENVPN_KEY_TA_DIR "ta-dir" +#define NM_OPENVPN_KEY_TUNNEL_MTU "tunnel-mtu" +#define NM_OPENVPN_KEY_USERNAME "username" +#define NM_OPENVPN_KEY_TAP_DEV "tap-dev" +#define NM_OPENVPN_KEY_DEV "dev" +#define NM_OPENVPN_KEY_DEV_TYPE "dev-type" +#define NM_OPENVPN_KEY_TUN_IPV6 "tun-ipv6" +#define NM_OPENVPN_KEY_TLS_CIPHER "tls-cipher" +#define NM_OPENVPN_KEY_TLS_CRYPT "tls-crypt" +#define NM_OPENVPN_KEY_TLS_REMOTE "tls-remote" +#define NM_OPENVPN_KEY_VERIFY_X509_NAME "verify-x509-name" +#define NM_OPENVPN_KEY_REMOTE_CERT_TLS "remote-cert-tls" +#define NM_OPENVPN_KEY_MAX_ROUTES "max-routes" + +#define NM_OPENVPN_KEY_PASSWORD "password" +#define NM_OPENVPN_KEY_CERTPASS "cert-pass" +#define NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD "http-proxy-password" +/* Internal auth-dialog -> service token indicating that no secrets are + * required for the connection. + */ +#define NM_OPENVPN_KEY_NOSECRET "no-secret" + +#define NM_OPENVPN_KEY_RENEG_SECONDS "reneg-seconds" + +#define NM_OPENVPN_AUTH_NONE "none" +#define NM_OPENVPN_AUTH_RSA_MD4 "RSA-MD4" +#define NM_OPENVPN_AUTH_MD5 "MD5" +#define NM_OPENVPN_AUTH_SHA1 "SHA1" +#define NM_OPENVPN_AUTH_SHA224 "SHA224" +#define NM_OPENVPN_AUTH_SHA256 "SHA256" +#define NM_OPENVPN_AUTH_SHA384 "SHA384" +#define NM_OPENVPN_AUTH_SHA512 "SHA512" +#define NM_OPENVPN_AUTH_RIPEMD160 "RIPEMD160" + +#define NM_OPENVPN_CONTYPE_TLS "tls" +#define NM_OPENVPN_CONTYPE_STATIC_KEY "static-key" +#define NM_OPENVPN_CONTYPE_PASSWORD "password" +#define NM_OPENVPN_CONTYPE_PASSWORD_TLS "password-tls" + +/* arguments of "--remote-cert-tls" */ +#define NM_OPENVPN_REM_CERT_TLS_CLIENT "client" +#define NM_OPENVPN_REM_CERT_TLS_SERVER "server" + +/* arguments of "--ns-cert-type" */ +#define NM_OPENVPN_NS_CERT_TYPE_CLIENT "client" +#define NM_OPENVPN_NS_CERT_TYPE_SERVER "server" + +/* possible types for verify-x509-name */ +#define NM_OPENVPN_VERIFY_X509_NAME_TYPE_SUBJECT "subject" +#define NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME "name" +#define NM_OPENVPN_VERIFY_X509_NAME_TYPE_NAME_PREFIX "name-prefix" + +/* User name and group to run nm-openvpn-service under */ +#define NM_OPENVPN_USER "nm-openvpn" +#define NM_OPENVPN_GROUP "nm-openvpn" +#define NM_OPENVPN_CHROOT LOCALSTATEDIR "/lib/openvpn/chroot" + +#endif /* __NM_SERVICE_DEFINES_H__ */ diff --git a/shared/nm-utils/gsystem-local-alloc.h b/shared/nm-utils/gsystem-local-alloc.h new file mode 100644 index 0000000..51b6251 --- /dev/null +++ b/shared/nm-utils/gsystem-local-alloc.h @@ -0,0 +1,208 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- + * + * Copyright (C) 2012 Colin Walters . + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GSYSTEM_LOCAL_ALLOC_H__ +#define __GSYSTEM_LOCAL_ALLOC_H__ + +#include + +G_BEGIN_DECLS + +#define GS_DEFINE_CLEANUP_FUNCTION(Type, name, func) \ + static inline void name (void *v) \ + { \ + func (*(Type*)v); \ + } + +#define GS_DEFINE_CLEANUP_FUNCTION0(Type, name, func) \ + static inline void name (void *v) \ + { \ + if (*(Type*)v) \ + func (*(Type*)v); \ + } + +/* These functions shouldn't be invoked directly; + * they are stubs that: + * 1) Take a pointer to the location (typically itself a pointer). + * 2) Provide %NULL-safety where it doesn't exist already (e.g. g_object_unref) + */ + +/** + * gs_free: + * + * Call g_free() on a variable location when it goes out of scope. + */ +#define gs_free __attribute__ ((cleanup(gs_local_free))) +GS_DEFINE_CLEANUP_FUNCTION(void*, gs_local_free, g_free) + +/** + * gs_unref_object: + * + * Call g_object_unref() on a variable location when it goes out of + * scope. Note that unlike g_object_unref(), the variable may be + * %NULL. + */ +#define gs_unref_object __attribute__ ((cleanup(gs_local_obj_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GObject*, gs_local_obj_unref, g_object_unref) + +/** + * gs_unref_variant: + * + * Call g_variant_unref() on a variable location when it goes out of + * scope. Note that unlike g_variant_unref(), the variable may be + * %NULL. + */ +#define gs_unref_variant __attribute__ ((cleanup(gs_local_variant_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GVariant*, gs_local_variant_unref, g_variant_unref) + +/** + * gs_free_variant_iter: + * + * Call g_variant_iter_free() on a variable location when it goes out of + * scope. + */ +#define gs_free_variant_iter __attribute__ ((cleanup(gs_local_variant_iter_free))) +GS_DEFINE_CLEANUP_FUNCTION0(GVariantIter*, gs_local_variant_iter_free, g_variant_iter_free) + +/** + * gs_free_variant_builder: + * + * Call g_variant_builder_unref() on a variable location when it goes out of + * scope. + */ +#define gs_unref_variant_builder __attribute__ ((cleanup(gs_local_variant_builder_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GVariantBuilder*, gs_local_variant_builder_unref, g_variant_builder_unref) + +/** + * gs_unref_array: + * + * Call g_array_unref() on a variable location when it goes out of + * scope. Note that unlike g_array_unref(), the variable may be + * %NULL. + + */ +#define gs_unref_array __attribute__ ((cleanup(gs_local_array_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GArray*, gs_local_array_unref, g_array_unref) + +/** + * gs_unref_ptrarray: + * + * Call g_ptr_array_unref() on a variable location when it goes out of + * scope. Note that unlike g_ptr_array_unref(), the variable may be + * %NULL. + + */ +#define gs_unref_ptrarray __attribute__ ((cleanup(gs_local_ptrarray_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GPtrArray*, gs_local_ptrarray_unref, g_ptr_array_unref) + +/** + * gs_unref_hashtable: + * + * Call g_hash_table_unref() on a variable location when it goes out + * of scope. Note that unlike g_hash_table_unref(), the variable may + * be %NULL. + */ +#define gs_unref_hashtable __attribute__ ((cleanup(gs_local_hashtable_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GHashTable*, gs_local_hashtable_unref, g_hash_table_unref) + +/** + * gs_free_list: + * + * Call g_list_free() on a variable location when it goes out + * of scope. + */ +#define gs_free_list __attribute__ ((cleanup(gs_local_free_list))) +GS_DEFINE_CLEANUP_FUNCTION(GList*, gs_local_free_list, g_list_free) + +/** + * gs_free_slist: + * + * Call g_slist_free() on a variable location when it goes out + * of scope. + */ +#define gs_free_slist __attribute__ ((cleanup(gs_local_free_slist))) +GS_DEFINE_CLEANUP_FUNCTION(GSList*, gs_local_free_slist, g_slist_free) + +/** + * gs_free_checksum: + * + * Call g_checksum_free() on a variable location when it goes out + * of scope. Note that unlike g_checksum_free(), the variable may + * be %NULL. + */ +#define gs_free_checksum __attribute__ ((cleanup(gs_local_checksum_free))) +GS_DEFINE_CLEANUP_FUNCTION0(GChecksum*, gs_local_checksum_free, g_checksum_free) + +/** + * gs_unref_bytes: + * + * Call g_bytes_unref() on a variable location when it goes out + * of scope. Note that unlike g_bytes_unref(), the variable may + * be %NULL. + */ +#define gs_unref_bytes __attribute__ ((cleanup(gs_local_bytes_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GBytes*, gs_local_bytes_unref, g_bytes_unref) + +/** + * gs_strfreev: + * + * Call g_strfreev() on a variable location when it goes out of scope. + */ +#define gs_strfreev __attribute__ ((cleanup(gs_local_strfreev))) +GS_DEFINE_CLEANUP_FUNCTION(char**, gs_local_strfreev, g_strfreev) + +/** + * gs_free_error: + * + * Call g_error_free() on a variable location when it goes out of scope. + */ +#define gs_free_error __attribute__ ((cleanup(gs_local_free_error))) +GS_DEFINE_CLEANUP_FUNCTION0(GError*, gs_local_free_error, g_error_free) + +/** + * gs_unref_keyfile: + * + * Call g_key_file_unref() on a variable location when it goes out of scope. + */ +#define gs_unref_keyfile __attribute__ ((cleanup(gs_local_keyfile_unref))) +GS_DEFINE_CLEANUP_FUNCTION0(GKeyFile*, gs_local_keyfile_unref, g_key_file_unref) + +static inline void +gs_cleanup_close_fdp (int *fdp) +{ + int fd; + + g_assert (fdp); + + fd = *fdp; + if (fd != -1) + (void) close (fd); +} + +/** + * gs_fd_close: + * + * Call close() on a variable location when it goes out of scope. + */ +#define gs_fd_close __attribute__((cleanup(gs_cleanup_close_fdp))) + +G_END_DECLS + +#endif diff --git a/shared/nm-utils/nm-glib.h b/shared/nm-utils/nm-glib.h new file mode 100644 index 0000000..4ef538e --- /dev/null +++ b/shared/nm-utils/nm-glib.h @@ -0,0 +1,484 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * 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. + * + * Copyright 2008 - 2011 Red Hat, Inc. + */ + +#ifndef __NM_GLIB_H__ +#define __NM_GLIB_H__ + + +#include +#include + +#include "gsystem-local-alloc.h" + +#ifdef __clang__ + +#undef G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#undef G_GNUC_END_IGNORE_DEPRECATIONS + +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") + +#define G_GNUC_END_IGNORE_DEPRECATIONS \ + _Pragma("clang diagnostic pop") + +#endif + +static inline void +__g_type_ensure (GType type) +{ +#if !GLIB_CHECK_VERSION(2,34,0) + if (G_UNLIKELY (type == (GType)-1)) + g_error ("can't happen"); +#else + G_GNUC_BEGIN_IGNORE_DEPRECATIONS; + g_type_ensure (type); + G_GNUC_END_IGNORE_DEPRECATIONS; +#endif +} +#define g_type_ensure __g_type_ensure + +#if !GLIB_CHECK_VERSION(2,34,0) + +#define g_clear_pointer(pp, destroy) \ + G_STMT_START { \ + G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \ + /* Only one access, please */ \ + gpointer *_pp = (gpointer *) (pp); \ + gpointer _p; \ + /* This assignment is needed to avoid a gcc warning */ \ + GDestroyNotify _destroy = (GDestroyNotify) (destroy); \ + \ + _p = *_pp; \ + if (_p) \ + { \ + *_pp = NULL; \ + _destroy (_p); \ + } \ + } G_STMT_END + +/* These are used to clean up the output of test programs; we can just let + * them no-op in older glib. + */ +#define g_test_expect_message(log_domain, log_level, pattern) +#define g_test_assert_expected_messages() + +#else + +/* We build with -DGLIB_MAX_ALLOWED_VERSION set to 2.32 to make sure we don't + * accidentally use new API that we shouldn't. But we don't want warnings for + * the APIs that we emulate above. + */ + +#define g_test_expect_message(domain, level, format...) \ + G_STMT_START { \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + g_test_expect_message (domain, level, format); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + } G_STMT_END + +#define g_test_assert_expected_messages_internal(domain, file, line, func) \ + G_STMT_START { \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + g_test_assert_expected_messages_internal (domain, file, line, func); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + } G_STMT_END + +#endif + + +#if GLIB_CHECK_VERSION (2, 35, 0) +/* For glib >= 2.36, g_type_init() is deprecated. + * But since 2.35.1 (7c42ab23b55c43ab96d0ac2124b550bf1f49c1ec) this function + * does nothing. Replace the call with empty statement. */ +#define nm_g_type_init() G_STMT_START { (void) 0; } G_STMT_END +#else +#define nm_g_type_init() G_STMT_START { g_type_init (); } G_STMT_END +#endif + + +/* g_test_initialized() is only available since glib 2.36. */ +#if !GLIB_CHECK_VERSION (2, 36, 0) +#define g_test_initialized() (g_test_config_vars->test_initialized) +#endif + +/* g_assert_cmpmem() is only available since glib 2.46. */ +#if !GLIB_CHECK_VERSION (2, 45, 7) +#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\ + gconstpointer __m1 = m1, __m2 = m2; \ + int __l1 = l1, __l2 = l2; \ + if (__l1 != __l2) \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", __l1, "==", __l2, 'i'); \ + else if (memcmp (__m1, __m2, __l1) != 0) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #m1 " == " #m2 ")"); \ + } G_STMT_END +#endif + +/* Rumtime check for glib version. First do a compile time check which + * (if satisfied) shortcuts the runtime check. */ +static inline gboolean +nm_glib_check_version (guint major, guint minor, guint micro) +{ + return GLIB_CHECK_VERSION (major, minor, micro) + || ( ( glib_major_version > major) + || ( glib_major_version == major + && glib_minor_version > minor) + || ( glib_major_version == major + && glib_minor_version == minor + && glib_micro_version < micro)); +} + +/* g_test_skip() is only available since glib 2.38. Add a compatibility wrapper. */ +static inline void +__nmtst_g_test_skip (const gchar *msg) +{ +#if GLIB_CHECK_VERSION (2, 38, 0) + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + g_test_skip (msg); + G_GNUC_END_IGNORE_DEPRECATIONS +#else + g_debug ("%s", msg); +#endif +} +#define g_test_skip __nmtst_g_test_skip + + +/* g_test_add_data_func_full() is only available since glib 2.34. Add a compatibility wrapper. */ +static inline void +__g_test_add_data_func_full (const char *testpath, + gpointer test_data, + GTestDataFunc test_func, + GDestroyNotify data_free_func) +{ +#if GLIB_CHECK_VERSION (2, 34, 0) + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + g_test_add_data_func_full (testpath, test_data, test_func, data_free_func); + G_GNUC_END_IGNORE_DEPRECATIONS +#else + g_return_if_fail (testpath != NULL); + g_return_if_fail (testpath[0] == '/'); + g_return_if_fail (test_func != NULL); + + g_test_add_vtable (testpath, 0, test_data, NULL, + (GTestFixtureFunc) test_func, + (GTestFixtureFunc) data_free_func); +#endif +} +#define g_test_add_data_func_full __g_test_add_data_func_full + + +#if !GLIB_CHECK_VERSION (2, 34, 0) +#define G_DEFINE_QUARK(QN, q_n) \ +GQuark \ +q_n##_quark (void) \ +{ \ + static GQuark q; \ + \ + if G_UNLIKELY (q == 0) \ + q = g_quark_from_static_string (#QN); \ + \ + return q; \ +} +#endif + + +static inline gboolean +nm_g_hash_table_replace (GHashTable *hash, gpointer key, gpointer value) +{ + /* glib 2.40 added a return value indicating whether the key already existed + * (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */ +#if GLIB_CHECK_VERSION(2, 40, 0) + return g_hash_table_replace (hash, key, value); +#else + gboolean contained = g_hash_table_contains (hash, key); + + g_hash_table_replace (hash, key, value); + return !contained; +#endif +} + +static inline gboolean +nm_g_hash_table_insert (GHashTable *hash, gpointer key, gpointer value) +{ + /* glib 2.40 added a return value indicating whether the key already existed + * (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */ +#if GLIB_CHECK_VERSION(2, 40, 0) + return g_hash_table_insert (hash, key, value); +#else + gboolean contained = g_hash_table_contains (hash, key); + + g_hash_table_insert (hash, key, value); + return !contained; +#endif +} + +static inline gboolean +nm_g_hash_table_add (GHashTable *hash, gpointer key) +{ + /* glib 2.40 added a return value indicating whether the key already existed + * (910191597a6c2e5d5d460e9ce9efb4f47d9cc63c). */ +#if GLIB_CHECK_VERSION(2, 40, 0) + return g_hash_table_add (hash, key); +#else + gboolean contained = g_hash_table_contains (hash, key); + + g_hash_table_add (hash, key); + return !contained; +#endif +} + +#if !GLIB_CHECK_VERSION(2, 40, 0) || defined (NM_GLIB_COMPAT_H_TEST) +static inline void +_nm_g_ptr_array_insert (GPtrArray *array, + gint index_, + gpointer data) +{ + g_return_if_fail (array); + g_return_if_fail (index_ >= -1); + g_return_if_fail (index_ <= (gint) array->len); + + g_ptr_array_add (array, data); + + if (index_ != -1 && index_ != (gint) (array->len - 1)) { + memmove (&(array->pdata[index_ + 1]), + &(array->pdata[index_]), + (array->len - index_ - 1) * sizeof (gpointer)); + array->pdata[index_] = data; + } +} +#endif +#if !GLIB_CHECK_VERSION(2, 40, 0) +#define g_ptr_array_insert(array, index, data) G_STMT_START { _nm_g_ptr_array_insert (array, index, data); } G_STMT_END +#else +#define g_ptr_array_insert(array, index, data) \ + G_STMT_START { \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + g_ptr_array_insert (array, index, data); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + } G_STMT_END +#endif + + +#if !GLIB_CHECK_VERSION (2, 40, 0) +static inline gboolean +_g_key_file_save_to_file (GKeyFile *key_file, + const gchar *filename, + GError **error) +{ + gchar *contents; + gboolean success; + gsize length; + + g_return_val_if_fail (key_file != NULL, FALSE); + g_return_val_if_fail (filename != NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + + contents = g_key_file_to_data (key_file, &length, NULL); + g_assert (contents != NULL); + + success = g_file_set_contents (filename, contents, length, error); + g_free (contents); + + return success; +} +#define g_key_file_save_to_file(key_file, filename, error) \ + _g_key_file_save_to_file (key_file, filename, error) +#else +#define g_key_file_save_to_file(key_file, filename, error) \ + ({ \ + gboolean _success; \ + \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _success = g_key_file_save_to_file (key_file, filename, error); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + _success; \ + }) +#endif + + +#if GLIB_CHECK_VERSION (2, 36, 0) +#define g_credentials_get_unix_pid(creds, error) \ + ({ \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + (g_credentials_get_unix_pid) ((creds), (error)); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + }) +#else +#define g_credentials_get_unix_pid(creds, error) \ + ({ \ + struct ucred *native_creds; \ + \ + native_creds = g_credentials_get_native ((creds), G_CREDENTIALS_TYPE_LINUX_UCRED); \ + g_assert (native_creds); \ + native_creds->pid; \ + }) +#endif + + +#if !GLIB_CHECK_VERSION(2, 40, 0) || defined (NM_GLIB_COMPAT_H_TEST) +static inline gpointer * +_nm_g_hash_table_get_keys_as_array (GHashTable *hash_table, + guint *length) +{ + GHashTableIter iter; + gpointer key, *ret; + guint i = 0; + + g_return_val_if_fail (hash_table, NULL); + + ret = g_new0 (gpointer, g_hash_table_size (hash_table) + 1); + g_hash_table_iter_init (&iter, hash_table); + + while (g_hash_table_iter_next (&iter, &key, NULL)) + ret[i++] = key; + + ret[i] = NULL; + + if (length) + *length = i; + + return ret; +} +#endif +#if !GLIB_CHECK_VERSION(2, 40, 0) +#define g_hash_table_get_keys_as_array(hash_table, length) \ + ({ \ + _nm_g_hash_table_get_keys_as_array (hash_table, length); \ + }) +#else +#define g_hash_table_get_keys_as_array(hash_table, length) \ + ({ \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + (g_hash_table_get_keys_as_array) ((hash_table), (length)); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + }) +#endif + +#ifndef g_info +/* g_info was only added with 2.39.2 */ +#define g_info(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_INFO, \ + __VA_ARGS__) +#endif + +#if !GLIB_CHECK_VERSION(2, 44, 0) +static inline gpointer +g_steal_pointer (gpointer pp) +{ + gpointer *ptr = (gpointer *) pp; + gpointer ref; + + ref = *ptr; + *ptr = NULL; + + return ref; +} + +/* type safety */ +#define g_steal_pointer(pp) \ + (0 ? (*(pp)) : (g_steal_pointer) (pp)) +#endif + + +static inline gboolean +_nm_g_strv_contains (const gchar * const *strv, + const gchar *str) +{ +#if !GLIB_CHECK_VERSION(2, 44, 0) + g_return_val_if_fail (strv != NULL, FALSE); + g_return_val_if_fail (str != NULL, FALSE); + + for (; *strv != NULL; strv++) { + if (g_str_equal (str, *strv)) + return TRUE; + } + + return FALSE; +#else + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + return g_strv_contains (strv, str); + G_GNUC_END_IGNORE_DEPRECATIONS +#endif +} +#define g_strv_contains _nm_g_strv_contains + +static inline GVariant * +_nm_g_variant_new_take_string (gchar *string) +{ +#if !GLIB_CHECK_VERSION(2, 36, 0) + GVariant *value; + + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (g_utf8_validate (string, -1, NULL), NULL); + + value = g_variant_new_string (string); + g_free (string); + return value; +#elif !GLIB_CHECK_VERSION(2, 38, 0) + GVariant *value; + GBytes *bytes; + + g_return_val_if_fail (string != NULL, NULL); + g_return_val_if_fail (g_utf8_validate (string, -1, NULL), NULL); + + bytes = g_bytes_new_take (string, strlen (string) + 1); + value = g_variant_new_from_bytes (G_VARIANT_TYPE_STRING, bytes, TRUE); + g_bytes_unref (bytes); + + return value; +#else + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + return g_variant_new_take_string (string); + G_GNUC_END_IGNORE_DEPRECATIONS +#endif +} +#define g_variant_new_take_string _nm_g_variant_new_take_string + +#if !GLIB_CHECK_VERSION(2, 38, 0) +_nm_printf (1, 2) +static inline GVariant * +_nm_g_variant_new_printf (const char *format_string, ...) +{ + char *string; + va_list ap; + + g_return_val_if_fail (format_string, NULL); + + va_start (ap, format_string); + string = g_strdup_vprintf (format_string, ap); + va_end (ap); + + return g_variant_new_take_string (string); +} +#define g_variant_new_printf(...) _nm_g_variant_new_printf(__VA_ARGS__) +#else +#define g_variant_new_printf(...) \ + ({ \ + GVariant *_v; \ + \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _v = g_variant_new_printf (__VA_ARGS__); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + _v; \ + }) +#endif + +#endif /* __NM_GLIB_H__ */ diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h new file mode 100644 index 0000000..b946a27 --- /dev/null +++ b/shared/nm-utils/nm-macros-internal.h @@ -0,0 +1,1109 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager -- Network link manager + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2014 Red Hat, Inc. + */ + +#ifndef __NM_MACROS_INTERNAL_H__ +#define __NM_MACROS_INTERNAL_H__ + +#include +#include +#include + +#define _nm_packed __attribute__ ((packed)) +#define _nm_unused __attribute__ ((unused)) +#define _nm_pure __attribute__ ((pure)) +#define _nm_const __attribute__ ((const)) +#define _nm_printf(a,b) __attribute__ ((__format__ (__printf__, a, b))) + +#include "nm-glib.h" + +/*****************************************************************************/ + +#define nm_offsetofend(t,m) (G_STRUCT_OFFSET (t,m) + sizeof (((t *) NULL)->m)) + +#define nm_auto(fcn) __attribute__ ((cleanup(fcn))) + +/** + * nm_auto_free: + * + * Call free() on a variable location when it goes out of scope. + */ +#define nm_auto_free nm_auto(_nm_auto_free_impl) +GS_DEFINE_CLEANUP_FUNCTION(void*, _nm_auto_free_impl, free) + +static inline void +_nm_auto_unset_gvalue_impl (GValue *v) +{ + g_value_unset (v); +} +#define nm_auto_unset_gvalue nm_auto(_nm_auto_unset_gvalue_impl) + +static inline void +_nm_auto_unref_gtypeclass (gpointer v) +{ + if (v && *((gpointer *) v)) + g_type_class_unref (*((gpointer *) v)); +} +#define nm_auto_unref_gtypeclass nm_auto(_nm_auto_unref_gtypeclass) + +static inline void +_nm_auto_free_gstring_impl (GString **str) +{ + if (*str) + g_string_free (*str, TRUE); +} +#define nm_auto_free_gstring nm_auto(_nm_auto_free_gstring_impl) + +static inline void +_nm_auto_close_impl (int *pfd) +{ + if (*pfd >= 0) { + int errsv = errno; + + (void) close (*pfd); + errno = errsv; + } +} +#define nm_auto_close nm_auto(_nm_auto_close_impl) + +static inline void +_nm_auto_fclose_impl (FILE **pfd) +{ + if (*pfd) { + int errsv = errno; + + (void) fclose (*pfd); + errno = errsv; + } +} +#define nm_auto_fclose nm_auto(_nm_auto_fclose_impl) + +static inline void +_nm_auto_protect_errno (int *p_saved_errno) +{ + errno = *p_saved_errno; +} +#define NM_AUTO_PROTECT_ERRNO(errsv_saved) nm_auto(_nm_auto_protect_errno) _nm_unused const int errsv_saved = (errno) + +/*****************************************************************************/ + +/* http://stackoverflow.com/a/11172679 */ +#define _NM_UTILS_MACRO_FIRST(...) __NM_UTILS_MACRO_FIRST_HELPER(__VA_ARGS__, throwaway) +#define __NM_UTILS_MACRO_FIRST_HELPER(first, ...) first + +#define _NM_UTILS_MACRO_REST(...) __NM_UTILS_MACRO_REST_HELPER(__NM_UTILS_MACRO_REST_NUM(__VA_ARGS__), __VA_ARGS__) +#define __NM_UTILS_MACRO_REST_HELPER(qty, ...) __NM_UTILS_MACRO_REST_HELPER2(qty, __VA_ARGS__) +#define __NM_UTILS_MACRO_REST_HELPER2(qty, ...) __NM_UTILS_MACRO_REST_HELPER_##qty(__VA_ARGS__) +#define __NM_UTILS_MACRO_REST_HELPER_ONE(first) +#define __NM_UTILS_MACRO_REST_HELPER_TWOORMORE(first, ...) , __VA_ARGS__ +#define __NM_UTILS_MACRO_REST_NUM(...) \ + __NM_UTILS_MACRO_REST_SELECT_30TH(__VA_ARGS__, \ + TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\ + TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\ + TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\ + TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\ + TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE, TWOORMORE,\ + TWOORMORE, TWOORMORE, TWOORMORE, ONE, throwaway) +#define __NM_UTILS_MACRO_REST_SELECT_30TH(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, ...) a30 + +/*****************************************************************************/ + +/* http://stackoverflow.com/a/2124385/354393 */ + +#define NM_NARG(...) \ + _NM_NARG(__VA_ARGS__,_NM_NARG_RSEQ_N()) +#define _NM_NARG(...) \ + _NM_NARG_ARG_N(__VA_ARGS__) +#define _NM_NARG_ARG_N( \ + _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \ + _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \ + _21,_22,_23,_24,_25,_26,_27,_28,_29,_30, \ + _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \ + _41,_42,_43,_44,_45,_46,_47,_48,_49,_50, \ + _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \ + _61,_62,_63,N,...) N +#define _NM_NARG_RSEQ_N() \ + 63,62,61,60, \ + 59,58,57,56,55,54,53,52,51,50, \ + 49,48,47,46,45,44,43,42,41,40, \ + 39,38,37,36,35,34,33,32,31,30, \ + 29,28,27,26,25,24,23,22,21,20, \ + 19,18,17,16,15,14,13,12,11,10, \ + 9,8,7,6,5,4,3,2,1,0 + +/*****************************************************************************/ + +#if defined (__GNUC__) +#define _NM_PRAGMA_WARNING_DO(warning) G_STRINGIFY(GCC diagnostic ignored warning) +#elif defined (__clang__) +#define _NM_PRAGMA_WARNING_DO(warning) G_STRINGIFY(clang diagnostic ignored warning) +#endif + +/* you can only suppress a specific warning that the compiler + * understands. Otherwise you will get another compiler warning + * about invalid pragma option. + * It's not that bad however, because gcc and clang often have the + * same name for the same warning. */ + +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define NM_PRAGMA_WARNING_DISABLE(warning) \ + _Pragma("GCC diagnostic push") \ + _Pragma(_NM_PRAGMA_WARNING_DO(warning)) +#elif defined (__clang__) +#define NM_PRAGMA_WARNING_DISABLE(warning) \ + _Pragma("clang diagnostic push") \ + _Pragma(_NM_PRAGMA_WARNING_DO(warning)) +#else +#define NM_PRAGMA_WARNING_DISABLE(warning) +#endif + +#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define NM_PRAGMA_WARNING_REENABLE \ + _Pragma("GCC diagnostic pop") +#elif defined (__clang__) +#define NM_PRAGMA_WARNING_REENABLE \ + _Pragma("clang diagnostic pop") +#else +#define NM_PRAGMA_WARNING_REENABLE +#endif + +/*****************************************************************************/ + +/** + * NM_G_ERROR_MSG: + * @error: (allow-none): the #GError instance + * + * All functions must follow the convention that when they + * return a failure, they must also set the GError to a valid + * message. For external API however, we want to be extra + * careful before accessing the error instance. Use NM_G_ERROR_MSG() + * which is safe to use on NULL. + * + * Returns: the error message. + **/ +static inline const char * +NM_G_ERROR_MSG (GError *error) +{ + return error ? (error->message ? : "(null)") : "(no-error)"; \ +} + +/*****************************************************************************/ + +/* macro to return strlen() of a compile time string. */ +#define NM_STRLEN(str) ( sizeof ("" str) - 1 ) + +/* returns the length of a NULL terminated array of pointers, + * like g_strv_length() does. The difference is: + * - it operats on arrays of pointers (of any kind, requiring no cast). + * - it accepts NULL to return zero. */ +#define NM_PTRARRAY_LEN(array) \ + ({ \ + typeof (*(array)) *const _array = (array); \ + gsize _n = 0; \ + \ + if (_array) { \ + _nm_unused typeof (*(_array[0])) *_array_check = _array[0]; \ + while (_array[_n]) \ + _n++; \ + } \ + _n; \ + }) + +/* Note: @value is only evaluated when *out_val is present. + * Thus, + * NM_SET_OUT (out_str, g_strdup ("hallo")); + * does the right thing. + */ +#define NM_SET_OUT(out_val, value) \ + G_STMT_START { \ + typeof(*(out_val)) *_out_val = (out_val); \ + \ + if (_out_val) { \ + *_out_val = (value); \ + } \ + } G_STMT_END + +/*****************************************************************************/ + +#if (defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 9 ))) || (defined (__clang__)) +#define _NM_CC_SUPPORT_GENERIC 1 +#else +#define _NM_CC_SUPPORT_GENERIC 0 +#endif + +#if _NM_CC_SUPPORT_GENERIC +#define _NM_CONSTCAST(type, obj) \ + (_Generic ((obj), \ + void * : ((type *) (obj)), \ + void *const : ((type *) (obj)), \ + const void * : ((const type *) (obj)), \ + const void *const: ((const type *) (obj)), \ + const type * : (obj), \ + const type *const: (obj), \ + type * : (obj), \ + type *const : (obj))) +#else +/* _NM_CONSTCAST() is there to preserve constness of a pointer. + * It uses C11's _Generic(). If that is not supported, we fall back + * to casting away constness. So, with _Generic, we get some additional + * static type checking by preserving constness, without, we cast it + * to a non-const pointer. */ +#define _NM_CONSTCAST(type, obj) \ + ((type *) (obj)) +#endif + +/*****************************************************************************/ + +#define _NM_IN_SET_EVAL_1( op, _x, y) (_x == (y)) +#define _NM_IN_SET_EVAL_2( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_1 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_3( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_2 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_4( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_3 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_5( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_4 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_6( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_5 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_7( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_6 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_8( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_7 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_9( op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_8 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_10(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_9 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_11(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_10 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_12(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_11 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_13(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_12 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_14(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_13 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_15(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_14 (op, _x, __VA_ARGS__) +#define _NM_IN_SET_EVAL_16(op, _x, y, ...) (_x == (y)) op _NM_IN_SET_EVAL_15 (op, _x, __VA_ARGS__) + +#define _NM_IN_SET_EVAL_N2(op, _x, n, ...) (_NM_IN_SET_EVAL_##n(op, _x, __VA_ARGS__)) +#define _NM_IN_SET_EVAL_N(op, type, x, n, ...) \ + ({ \ + type _x = (x); \ + \ + /* trigger a -Wenum-compare warning */ \ + nm_assert (TRUE || _x == (x)); \ + \ + !!_NM_IN_SET_EVAL_N2(op, _x, n, __VA_ARGS__); \ + }) + +#define _NM_IN_SET(op, type, x, ...) _NM_IN_SET_EVAL_N(op, type, x, NM_NARG (__VA_ARGS__), __VA_ARGS__) + +/* Beware that this does short-circuit evaluation (use "||" instead of "|") + * which has a possibly unexpected non-function-like behavior. + * Use NM_IN_SET_SE if you need all arguments to be evaluted. */ +#define NM_IN_SET(x, ...) _NM_IN_SET(||, typeof (x), x, __VA_ARGS__) + +/* "SE" stands for "side-effect". Contrary to NM_IN_SET(), this does not do + * short-circuit evaluation, which can make a difference if the arguments have + * side-effects. */ +#define NM_IN_SET_SE(x, ...) _NM_IN_SET(|, typeof (x), x, __VA_ARGS__) + +/* the *_TYPED forms allow to explicitly select the type of "x". This is useful + * if "x" doesn't support typeof (bitfields) or you want to gracefully convert + * a type using automatic type conversion rules (but not forcing the conversion + * with a cast). */ +#define NM_IN_SET_TYPED(type, x, ...) _NM_IN_SET(||, type, x, __VA_ARGS__) +#define NM_IN_SET_SE_TYPED(type, x, ...) _NM_IN_SET(|, type, x, __VA_ARGS__) + +/*****************************************************************************/ + +static inline gboolean +_NM_IN_STRSET_streq (const char *x, const char *s) +{ + return s && strcmp (x, s) == 0; +} + +#define _NM_IN_STRSET_EVAL_1( op, _x, y) _NM_IN_STRSET_streq (_x, y) +#define _NM_IN_STRSET_EVAL_2( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_1 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_3( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_2 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_4( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_3 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_5( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_4 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_6( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_5 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_7( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_6 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_8( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_7 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_9( op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_8 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_10(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_9 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_11(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_10 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_12(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_11 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_13(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_12 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_14(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_13 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_15(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_14 (op, _x, __VA_ARGS__) +#define _NM_IN_STRSET_EVAL_16(op, _x, y, ...) _NM_IN_STRSET_streq (_x, y) op _NM_IN_STRSET_EVAL_15 (op, _x, __VA_ARGS__) + +#define _NM_IN_STRSET_EVAL_N2(op, _x, n, ...) (_NM_IN_STRSET_EVAL_##n(op, _x, __VA_ARGS__)) +#define _NM_IN_STRSET_EVAL_N(op, x, n, ...) \ + ({ \ + const char *_x = (x); \ + ( ((_x == NULL) && _NM_IN_SET_EVAL_N2 (op, ((const char *) NULL), n, __VA_ARGS__)) \ + || ((_x != NULL) && _NM_IN_STRSET_EVAL_N2 (op, _x, n, __VA_ARGS__)) \ + ); \ + }) + +/* Beware that this does short-circuit evaluation (use "||" instead of "|") + * which has a possibly unexpected non-function-like behavior. + * Use NM_IN_STRSET_SE if you need all arguments to be evaluted. */ +#define NM_IN_STRSET(x, ...) _NM_IN_STRSET_EVAL_N(||, x, NM_NARG (__VA_ARGS__), __VA_ARGS__) + +/* "SE" stands for "side-effect". Contrary to NM_IN_STRSET(), this does not do + * short-circuit evaluation, which can make a difference if the arguments have + * side-effects. */ +#define NM_IN_STRSET_SE(x, ...) _NM_IN_STRSET_EVAL_N(|, x, NM_NARG (__VA_ARGS__), __VA_ARGS__) + +#define NM_STRCHAR_ALL(str, ch_iter, predicate) \ + ({ \ + gboolean _val = TRUE; \ + const char *_str = (str); \ + \ + if (_str) { \ + for (;;) { \ + const char ch_iter = _str[0]; \ + \ + if (ch_iter != '\0') { \ + if (predicate) {\ + _str++; \ + continue; \ + } \ + _val = FALSE; \ + } \ + break; \ + } \ + } \ + _val; \ + }) + +#define NM_STRCHAR_ANY(str, ch_iter, predicate) \ + ({ \ + gboolean _val = FALSE; \ + const char *_str = (str); \ + \ + if (_str) { \ + for (;;) { \ + const char ch_iter = _str[0]; \ + \ + if (ch_iter != '\0') { \ + if (predicate) { \ + ; \ + } else { \ + _str++; \ + continue; \ + } \ + _val = TRUE; \ + } \ + break; \ + } \ + } \ + _val; \ + }) + +/*****************************************************************************/ + +static inline guint +NM_HASH_COMBINE (guint h, guint val) +{ + /* see g_str_hash() for reasons */ + return (h << 5) + h + val; +} + +static inline guint +NM_HASH_COMBINE_UINT64 (guint h, guint64 val) +{ + return NM_HASH_COMBINE (h, (((guint) val) & 0xFFFFFFFFu) + ((guint) (val >> 32))); +} + +/*****************************************************************************/ + +/* NM_CACHED_QUARK() returns the GQuark for @string, but caches + * it in a static variable to speed up future lookups. + * + * @string must be a string literal. + */ +#define NM_CACHED_QUARK(string) \ + ({ \ + static GQuark _nm_cached_quark = 0; \ + \ + (G_LIKELY (_nm_cached_quark != 0) \ + ? _nm_cached_quark \ + : (_nm_cached_quark = g_quark_from_static_string (""string""))); \ + }) + +/* NM_CACHED_QUARK_FCN() is essentially the same as G_DEFINE_QUARK + * with two differences: + * - @string must be a quited string-literal + * - @fcn must be the full function name, while G_DEFINE_QUARK() appends + * "_quark" to the function name. + * Both properties of G_DEFINE_QUARK() are non favorable, because you can no + * longer grep for string/fcn -- unless you are aware that you are searching + * for G_DEFINE_QUARK() and omit quotes / append _quark(). With NM_CACHED_QUARK_FCN(), + * ctags/cscope can locate the use of @fcn (though it doesn't recognize that + * NM_CACHED_QUARK_FCN() defines it). + */ +#define NM_CACHED_QUARK_FCN(string, fcn) \ +GQuark \ +fcn (void) \ +{ \ + return NM_CACHED_QUARK (string); \ +} + +/*****************************************************************************/ + +#define nm_streq(s1, s2) (strcmp (s1, s2) == 0) +#define nm_streq0(s1, s2) (g_strcmp0 (s1, s2) == 0) + +/*****************************************************************************/ + +static inline GString * +nm_gstring_prepare (GString **l) +{ + if (*l) + g_string_set_size (*l, 0); + else + *l = g_string_sized_new (30); + return *l; +} + +static inline const char * +nm_str_not_empty (const char *str) +{ + return str && str[0] ? str : NULL; +} + +static inline char * +nm_strdup_not_empty (const char *str) +{ + return str && str[0] ? g_strdup (str) : NULL; +} + +static inline char * +nm_str_realloc (char *str) +{ + gs_free char *s = str; + + /* Returns a new clone of @str and frees @str. The point is that @str + * possibly points to a larger chunck of memory. We want to freshly allocate + * a buffer. + * + * We could use realloc(), but that might not do anything or leave + * @str in its memory pool for chunks of a different size (bad for + * fragmentation). + * + * This is only useful when we want to keep the buffer around for a long + * time and want to re-allocate a more optimal buffer. */ + + return g_strdup (s); +} + +/*****************************************************************************/ + +#define NM_PRINT_FMT_QUOTED(cond, prefix, str, suffix, str_else) \ + (cond) ? (prefix) : "", \ + (cond) ? (str) : (str_else), \ + (cond) ? (suffix) : "" +#define NM_PRINT_FMT_QUOTE_STRING(arg) NM_PRINT_FMT_QUOTED((arg), "\"", (arg), "\"", "(null)") + +/*****************************************************************************/ + +/* glib/C provides the following kind of assertions: + * - assert() -- disable with NDEBUG + * - g_return_if_fail() -- disable with G_DISABLE_CHECKS + * - g_assert() -- disable with G_DISABLE_ASSERT + * but they are all enabled by default and usually even production builds have + * these kind of assertions enabled. It also means, that disabling assertions + * is an untested configuration, and might have bugs. + * + * Add our own assertion macro nm_assert(), which is disabled by default and must + * be explicitly enabled. They are useful for more expensive checks or checks that + * depend less on runtime conditions (that is, are generally expected to be true). */ + +#ifndef NM_MORE_ASSERTS +#define NM_MORE_ASSERTS 0 +#endif + +#if NM_MORE_ASSERTS +#define nm_assert(cond) G_STMT_START { g_assert (cond); } G_STMT_END +#define nm_assert_se(cond) G_STMT_START { if (G_LIKELY (cond)) { ; } else { g_assert (FALSE && (cond)); } } G_STMT_END +#define nm_assert_not_reached() G_STMT_START { g_assert_not_reached (); } G_STMT_END +#else +#define nm_assert(cond) G_STMT_START { if (FALSE) { if (cond) { } } } G_STMT_END +#define nm_assert_se(cond) G_STMT_START { if (G_LIKELY (cond)) { ; } } G_STMT_END +#define nm_assert_not_reached() G_STMT_START { ; } G_STMT_END +#endif + +/*****************************************************************************/ + +#define NM_GOBJECT_PROPERTIES_DEFINE_BASE(...) \ +typedef enum { \ + _PROPERTY_ENUMS_0, \ + __VA_ARGS__ \ + _PROPERTY_ENUMS_LAST, \ +} _PropertyEnums; \ +static GParamSpec *obj_properties[_PROPERTY_ENUMS_LAST] = { NULL, } + +#define NM_GOBJECT_PROPERTIES_DEFINE(obj_type, ...) \ +NM_GOBJECT_PROPERTIES_DEFINE_BASE (__VA_ARGS__); \ +static inline void \ +_notify (obj_type *obj, _PropertyEnums prop) \ +{ \ + nm_assert (G_IS_OBJECT (obj)); \ + nm_assert ((gsize) prop < G_N_ELEMENTS (obj_properties)); \ + g_object_notify_by_pspec ((GObject *) obj, obj_properties[prop]); \ +} + +/*****************************************************************************/ + +/* these are implemented as a macro, because they accept self + * as both (type*) and (const type*), and return a const + * private pointer accordingly. */ +#define __NM_GET_PRIVATE(self, type, is_check, addrop) \ + ({ \ + /* preserve the const-ness of self. Unfortunately, that + * way, @self cannot be a void pointer */ \ + typeof (self) _self = (self); \ + \ + /* Get compiler error if variable is of wrong type */ \ + _nm_unused const type *const _self2 = (_self); \ + \ + nm_assert (is_check (_self)); \ + ( addrop ( _NM_CONSTCAST (type, _self)->_priv) ); \ + }) + +#define _NM_GET_PRIVATE(self, type, is_check) __NM_GET_PRIVATE(self, type, is_check, &) +#define _NM_GET_PRIVATE_PTR(self, type, is_check) __NM_GET_PRIVATE(self, type, is_check, ) + +#define __NM_GET_PRIVATE_VOID(self, type, is_check, result_cmd) \ + ({ \ + /* (self) can be any non-const pointer. It will be cast to "type *". + * We don't explicitly cast but assign first to (void *) which + * will fail if @self is pointing to const. */ \ + void *const _self1 = (self); \ + type *const _self = _self1; \ + \ + nm_assert (is_check (_self)); \ + ( result_cmd ); \ + }) + +#define _NM_GET_PRIVATE_VOID(self, type, is_check) __NM_GET_PRIVATE_VOID(self, type, is_check, &_self->_priv) +#define _NM_GET_PRIVATE_PTR_VOID(self, type, is_check) __NM_GET_PRIVATE_VOID(self, type, is_check, _self->_priv) + +/*****************************************************************************/ + +static inline gpointer +nm_g_object_ref (gpointer obj) +{ + /* g_object_ref() doesn't accept NULL. */ + if (obj) + g_object_ref (obj); + return obj; +} + +static inline void +nm_g_object_unref (gpointer obj) +{ + /* g_object_unref() doesn't accept NULL. Usully, we workaround that + * by using g_clear_object(), but sometimes that is not convinient + * (for example as as destroy function for a hash table that can contain + * NULL values). */ + if (obj) + g_object_unref (obj); +} + +/* Assigns GObject @obj to destination @pdst, and takes an additional ref. + * The previous value of @pdst is unrefed. + * + * It makes sure to first increase the ref-count of @obj, and handles %NULL + * @obj correctly. + * */ +#define nm_g_object_ref_set(pp, obj) \ + ({ \ + typeof (*(pp)) *const _pp = (pp); \ + typeof (**_pp) *const _obj = (obj); \ + typeof (**_pp) *_p; \ + gboolean _changed = FALSE; \ + \ + if ( _pp \ + && ((_p = *_pp) != _obj)) { \ + if (_obj) { \ + nm_assert (G_IS_OBJECT (_obj)); \ + g_object_ref (_obj); \ + } \ + if (_p) { \ + nm_assert (G_IS_OBJECT (_p)); \ + *_pp = NULL; \ + g_object_unref (_p); \ + } \ + *_pp = _obj; \ + _changed = TRUE; \ + } \ + _changed; \ + }) + +/* basically, replaces + * g_clear_pointer (&location, g_free) + * with + * nm_clear_g_free (&location) + * + * Another advantage is that by using a macro and typeof(), it is more + * typesafe and gives you for example a compiler warning when pp is a const + * pointer or points to a const-pointer. + */ +#define nm_clear_g_free(pp) \ + ({ \ + typeof (*(pp)) *_pp = (pp); \ + typeof (**_pp) *_p; \ + gboolean _changed = FALSE; \ + \ + if ( _pp \ + && (_p = *_pp)) { \ + *_pp = NULL; \ + g_free (_p); \ + _changed = TRUE; \ + } \ + _changed; \ + }) + +#define nm_clear_g_object(pp) \ + ({ \ + typeof (*(pp)) *_pp = (pp); \ + typeof (**_pp) *_p; \ + gboolean _changed = FALSE; \ + \ + if ( _pp \ + && (_p = *_pp)) { \ + nm_assert (G_IS_OBJECT (_p)); \ + *_pp = NULL; \ + g_object_unref (_p); \ + _changed = TRUE; \ + } \ + _changed; \ + }) + +static inline gboolean +nm_clear_g_source (guint *id) +{ + if (id && *id) { + g_source_remove (*id); + *id = 0; + return TRUE; + } + return FALSE; +} + +static inline gboolean +nm_clear_g_signal_handler (gpointer self, gulong *id) +{ + if (id && *id) { + g_signal_handler_disconnect (self, *id); + *id = 0; + return TRUE; + } + return FALSE; +} + +static inline gboolean +nm_clear_g_variant (GVariant **variant) +{ + if (variant && *variant) { + g_variant_unref (*variant); + *variant = NULL; + return TRUE; + } + return FALSE; +} + +static inline gboolean +nm_clear_g_cancellable (GCancellable **cancellable) +{ + if (cancellable && *cancellable) { + g_cancellable_cancel (*cancellable); + g_object_unref (*cancellable); + *cancellable = NULL; + return TRUE; + } + return FALSE; +} + +/*****************************************************************************/ + +/* Determine whether @x is a power of two (@x being an integer type). + * Basically, this returns TRUE, if @x has exactly one bit set. + * For negative values and zero, this always returns FALSE. */ +#define nm_utils_is_power_of_two(x) ({ \ + typeof(x) __x = (x); \ + \ + ( (__x > ((typeof(__x)) 0)) \ + && ((__x & (__x - (((typeof(__x)) 1)))) == ((typeof(__x)) 0))); \ + }) + +/*****************************************************************************/ + +#define NM_UTILS_LOOKUP_DEFAULT(v) return (v) +#define NM_UTILS_LOOKUP_DEFAULT_WARN(v) g_return_val_if_reached (v) +#define NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT(v) { nm_assert_not_reached (); return (v); } +#define NM_UTILS_LOOKUP_ITEM(v, n) (void) 0; case v: return (n); (void) 0 +#define NM_UTILS_LOOKUP_STR_ITEM(v, n) NM_UTILS_LOOKUP_ITEM(v, ""n"") +#define NM_UTILS_LOOKUP_ITEM_IGNORE(v) (void) 0; case v: break; (void) 0 +#define NM_UTILS_LOOKUP_ITEM_IGNORE_OTHER() (void) 0; default: break; (void) 0 + +#define _NM_UTILS_LOOKUP_DEFINE(scope, fcn_name, lookup_type, result_type, unknown_val, ...) \ +scope result_type \ +fcn_name (lookup_type val) \ +{ \ + switch (val) { \ + (void) 0, \ + __VA_ARGS__ \ + (void) 0; \ + }; \ + { unknown_val; } \ +} + +#define NM_UTILS_LOOKUP_STR_DEFINE(fcn_name, lookup_type, unknown_val, ...) \ + _NM_UTILS_LOOKUP_DEFINE (, fcn_name, lookup_type, const char *, unknown_val, __VA_ARGS__) +#define NM_UTILS_LOOKUP_STR_DEFINE_STATIC(fcn_name, lookup_type, unknown_val, ...) \ + _NM_UTILS_LOOKUP_DEFINE (static, fcn_name, lookup_type, const char *, unknown_val, __VA_ARGS__) + +/* Call the string-lookup-table function @fcn_name. If the function returns + * %NULL, the numeric index is converted to string using a alloca() buffer. + * Beware: this macro uses alloca(). */ +#define NM_UTILS_LOOKUP_STR(fcn_name, idx) \ + ({ \ + typeof (idx) _idx = (idx); \ + const char *_s; \ + \ + _s = fcn_name (_idx); \ + if (!_s) { \ + _s = g_alloca (30); \ + \ + g_snprintf ((char *) _s, 30, "(%lld)", (long long) _idx); \ + } \ + _s; \ + }) + +/*****************************************************************************/ + +/* check if @flags has exactly one flag (@check) set. You should call this + * only with @check being a compile time constant and a power of two. */ +#define NM_FLAGS_HAS(flags, check) \ + ( G_STATIC_ASSERT_EXPR ((check) > 0 && ((check) & ((check) - 1)) == 0), NM_FLAGS_ANY ((flags), (check)) ) + +#define NM_FLAGS_ANY(flags, check) ( ( ((flags) & (check)) != 0 ) ? TRUE : FALSE ) +#define NM_FLAGS_ALL(flags, check) ( ( ((flags) & (check)) == (check) ) ? TRUE : FALSE ) + +#define NM_FLAGS_SET(flags, val) ({ \ + const typeof(flags) _flags = (flags); \ + const typeof(flags) _val = (val); \ + \ + _flags | _val; \ + }) + +#define NM_FLAGS_UNSET(flags, val) ({ \ + const typeof(flags) _flags = (flags); \ + const typeof(flags) _val = (val); \ + \ + _flags & (~_val); \ + }) + +#define NM_FLAGS_ASSIGN(flags, val, assign) ({ \ + const typeof(flags) _flags = (flags); \ + const typeof(flags) _val = (val); \ + \ + (assign) \ + ? _flags | (_val) \ + : _flags & (~_val); \ + }) + +/*****************************************************************************/ + +#define _NM_BACKPORT_SYMBOL_IMPL(VERSION, RETURN_TYPE, ORIG_FUNC, VERSIONED_FUNC, ARGS_TYPED, ARGS) \ +RETURN_TYPE VERSIONED_FUNC ARGS_TYPED; \ +RETURN_TYPE VERSIONED_FUNC ARGS_TYPED \ +{ \ + return ORIG_FUNC ARGS; \ +} \ +RETURN_TYPE ORIG_FUNC ARGS_TYPED; \ +__asm__(".symver "G_STRINGIFY(VERSIONED_FUNC)", "G_STRINGIFY(ORIG_FUNC)"@"G_STRINGIFY(VERSION)) + +#define NM_BACKPORT_SYMBOL(VERSION, RETURN_TYPE, FUNC, ARGS_TYPED, ARGS) \ +_NM_BACKPORT_SYMBOL_IMPL(VERSION, RETURN_TYPE, FUNC, _##FUNC##_##VERSION, ARGS_TYPED, ARGS) + +/*****************************************************************************/ + +#define nm_str_skip_leading_spaces(str) \ + ({ \ + typeof (*(str)) *_str = (str); \ + _nm_unused const char *_str_type_check = _str; \ + \ + if (_str) { \ + while (g_ascii_isspace (_str[0])) \ + _str++; \ + } \ + _str; \ + }) + +static inline char * +nm_strstrip (char *str) +{ + /* g_strstrip doesn't like NULL. */ + return str ? g_strstrip (str) : NULL; +} + +/* g_ptr_array_sort()'s compare function takes pointers to the + * value. Thus, you cannot use strcmp directly. You can use + * nm_strcmp_p(). + * + * Like strcmp(), this function is not forgiving to accept %NULL. */ +static inline int +nm_strcmp_p (gconstpointer a, gconstpointer b) +{ + const char *s1 = *((const char **) a); + const char *s2 = *((const char **) b); + + return strcmp (s1, s2); +} + +/* like nm_strcmp_p(), suitable for g_ptr_array_sort_with_data(). + * g_ptr_array_sort() just casts nm_strcmp_p() to a function of different + * signature. I guess, in glib there are knowledgeable people that ensure + * that this additional argument doesn't cause problems due to different ABI + * for every architecture that glib supports. + * For NetworkManager, we'd rather avoid such stunts. + **/ +static inline int +nm_strcmp_p_with_data (gconstpointer a, gconstpointer b, gpointer user_data) +{ + const char *s1 = *((const char **) a); + const char *s2 = *((const char **) b); + + return strcmp (s1, s2); +} + +static inline int +nm_cmp_uint32_p_with_data (gconstpointer p_a, gconstpointer p_b, gpointer user_data) +{ + const guint32 a = *((const guint32 *) p_a); + const guint32 b = *((const guint32 *) p_b); + + if (a < b) + return -1; + if (a > b) + return 1; + return 0; +} + +/*****************************************************************************/ + +/* Taken from systemd's UNIQ_T and UNIQ macros. */ + +#define NM_UNIQ_T(x, uniq) G_PASTE(__unique_prefix_, G_PASTE(x, uniq)) +#define NM_UNIQ __COUNTER__ + +/*****************************************************************************/ + +/* glib's MIN()/MAX() macros don't have function-like behavior, in that they evaluate + * the argument possibly twice. + * + * Taken from systemd's MIN()/MAX() macros. */ + +#define NM_MIN(a, b) __NM_MIN(NM_UNIQ, a, NM_UNIQ, b) +#define __NM_MIN(aq, a, bq, b) \ + ({ \ + typeof (a) NM_UNIQ_T(A, aq) = (a); \ + typeof (b) NM_UNIQ_T(B, bq) = (b); \ + ((NM_UNIQ_T(A, aq) < NM_UNIQ_T(B, bq)) ? NM_UNIQ_T(A, aq) : NM_UNIQ_T(B, bq)); \ + }) + +#define NM_MAX(a, b) __NM_MAX(NM_UNIQ, a, NM_UNIQ, b) +#define __NM_MAX(aq, a, bq, b) \ + ({ \ + typeof (a) NM_UNIQ_T(A, aq) = (a); \ + typeof (b) NM_UNIQ_T(B, bq) = (b); \ + ((NM_UNIQ_T(A, aq) > NM_UNIQ_T(B, bq)) ? NM_UNIQ_T(A, aq) : NM_UNIQ_T(B, bq)); \ + }) + +#define NM_CLAMP(x, low, high) __NM_CLAMP(NM_UNIQ, x, NM_UNIQ, low, NM_UNIQ, high) +#define __NM_CLAMP(xq, x, lowq, low, highq, high) \ + ({ \ + typeof(x)NM_UNIQ_T(X,xq) = (x); \ + typeof(low) NM_UNIQ_T(LOW,lowq) = (low); \ + typeof(high) NM_UNIQ_T(HIGH,highq) = (high); \ + \ + ( (NM_UNIQ_T(X,xq) > NM_UNIQ_T(HIGH,highq)) \ + ? NM_UNIQ_T(HIGH,highq) \ + : (NM_UNIQ_T(X,xq) < NM_UNIQ_T(LOW,lowq)) \ + ? NM_UNIQ_T(LOW,lowq) \ + : NM_UNIQ_T(X,xq)); \ + }) + +/*****************************************************************************/ + +static inline guint +nm_encode_version (guint major, guint minor, guint micro) +{ + /* analog to the preprocessor macro NM_ENCODE_VERSION(). */ + return (major << 16) | (minor << 8) | micro; +} + +static inline void +nm_decode_version (guint version, guint *major, guint *minor, guint *micro) +{ + *major = (version & 0xFFFF0000u) >> 16; + *minor = (version & 0x0000FF00u) >> 8; + *micro = (version & 0x000000FFu); +} + +/*****************************************************************************/ + +/* taken from systemd's DECIMAL_STR_MAX() + * + * Returns the number of chars needed to format variables of the + * specified type as a decimal string. Adds in extra space for a + * negative '-' prefix (hence works correctly on signed + * types). Includes space for the trailing NUL. */ +#define NM_DECIMAL_STR_MAX(type) \ + (2+(sizeof(type) <= 1 ? 3 : \ + sizeof(type) <= 2 ? 5 : \ + sizeof(type) <= 4 ? 10 : \ + sizeof(type) <= 8 ? 20 : sizeof(int[-2*(sizeof(type) > 8)]))) + +/*****************************************************************************/ + +/* if @str is NULL, return "(null)". Otherwise, allocate a buffer using + * alloca() of and fill it with @str. @str will be quoted with double quote. + * If @str is longer then @trunc_at, the string is truncated and the closing + * quote is instead '^' to indicate truncation. + * + * Thus, the maximum stack allocated buffer will be @trunc_at+3. */ +#define nm_strquote_a(trunc_at, str) \ + ({ \ + const char *const _str = (str); \ + \ + (_str \ + ? ({ \ + const gsize _trunc_at = (trunc_at); \ + const gsize _strlen_trunc = NM_MIN (strlen (_str), _trunc_at); \ + char *_buf; \ + \ + _buf = g_alloca (_strlen_trunc + 3); \ + _buf[0] = '"'; \ + memcpy (&_buf[1], _str, _strlen_trunc); \ + _buf[_strlen_trunc + 1] = _str[_strlen_trunc] ? '^' : '"'; \ + _buf[_strlen_trunc + 2] = '\0'; \ + _buf; \ + }) \ + : "(null)"); \ + }) + +#define nm_sprintf_buf(buf, format, ...) \ + ({ \ + char * _buf = (buf); \ + int _buf_len; \ + \ + /* some static assert trying to ensure that the buffer is statically allocated. + * It disallows a buffer size of sizeof(gpointer) to catch that. */ \ + G_STATIC_ASSERT (G_N_ELEMENTS (buf) == sizeof (buf) && sizeof (buf) != sizeof (char *)); \ + _buf_len = g_snprintf (_buf, sizeof (buf), \ + ""format"", ##__VA_ARGS__); \ + nm_assert (_buf_len < sizeof (buf)); \ + _buf; \ + }) + +#define nm_sprintf_bufa(n_elements, format, ...) \ + ({ \ + char *_buf; \ + int _buf_len; \ + typeof (n_elements) _n_elements = (n_elements); \ + \ + _buf = g_alloca (_n_elements); \ + _buf_len = g_snprintf (_buf, _n_elements, \ + ""format"", ##__VA_ARGS__); \ + nm_assert (_buf_len < _n_elements); \ + _buf; \ + }) + +/*****************************************************************************/ + +/** + * The boolean type _Bool is C99 while we mostly stick to C89. However, _Bool is too + * convinient to miss and is effectively available in gcc and clang. So, just use it. + * + * Usually, one would include "stdbool.h" to get the "bool" define which aliases + * _Bool. We provide this define here, because we want to make use of it anywhere. + * (also, stdbool.h is again C99). + * + * Using _Bool has advantages over gboolean: + * + * - commonly _Bool is one byte large, instead of gboolean's 4 bytes (because gboolean + * is a typedef for gint). Especially when having boolean fields in a struct, we can + * thereby easily save some space. + * + * - _Bool type guarantees that two "true" expressions compare equal. E.g. the follwing + * will not work: + * gboolean v1 = 1; + * gboolean v2 = 2; + * g_assert_cmpint (v1, ==, v2); // will fail + * For that, we often to use !! to coerce gboolean values to 0 or 1: + * g_assert_cmpint (!!v2, ==, TRUE); + * With _Bool type, this will be handled properly by the compiler. + * + * - For structs, we might want to safe even more space and use bitfields: + * struct s1 { + * gboolean v1:1; + * }; + * But the problem here is that gboolean is signed, so that + * v1 will be either 0 or -1 (not 1, TRUE). Thus, the following + * fails: + * struct s1 s = { .v1 = TRUE, }; + * g_assert_cmpint (s1.v1, ==, TRUE); + * It will however work just fine with bool/_Bool while retaining the + * notion of having a boolean value. + * + * Also, add the defines for "true" and "false". Those are nicely highlighted by the editor + * as special types, contrary to glib's "TRUE"/"FALSE". + */ + +#ifndef bool +#define bool _Bool +#define true 1 +#define false 0 +#endif + + +#ifdef _G_BOOLEAN_EXPR +/* g_assert() uses G_LIKELY(), which in turn uses _G_BOOLEAN_EXPR(). + * As glib's implementation uses a local variable _g_boolean_var_, + * we cannot do + * g_assert (some_macro ()); + * where some_macro() itself expands to ({g_assert(); ...}). + * In other words, you cannot have a g_assert() inside a g_assert() + * without getting a -Werror=shadow failure. + * + * Workaround that by re-defining _G_BOOLEAN_EXPR() + **/ +#undef _G_BOOLEAN_EXPR +#define __NM_G_BOOLEAN_EXPR_IMPL(v, expr) \ + ({ \ + int NM_UNIQ_T(V, v); \ + \ + if (expr) \ + NM_UNIQ_T(V, v) = 1; \ + else \ + NM_UNIQ_T(V, v) = 0; \ + NM_UNIQ_T(V, v); \ + }) +#define _G_BOOLEAN_EXPR(expr) __NM_G_BOOLEAN_EXPR_IMPL (NM_UNIQ, expr) +#endif + +/*****************************************************************************/ + +#endif /* __NM_MACROS_INTERNAL_H__ */ diff --git a/shared/nm-utils/nm-shared-utils.c b/shared/nm-utils/nm-shared-utils.c new file mode 100644 index 0000000..0810d7b --- /dev/null +++ b/shared/nm-utils/nm-shared-utils.c @@ -0,0 +1,821 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager -- Network link manager + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2016 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "nm-shared-utils.h" + +#include +#include + +/*****************************************************************************/ + +const void *const _NM_PTRARRAY_EMPTY[1] = { NULL }; + +/*****************************************************************************/ + +const NMIPAddr nm_ip_addr_zero = { 0 }; + +/*****************************************************************************/ + +void +nm_utils_strbuf_append_c (char **buf, gsize *len, char c) +{ + switch (*len) { + case 0: + return; + case 1: + (*buf)[0] = '\0'; + *len = 0; + (*buf)++; + return; + default: + (*buf)[0] = c; + (*buf)[1] = '\0'; + (*len)--; + (*buf)++; + return; + } +} + +void +nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str) +{ + gsize src_len; + + switch (*len) { + case 0: + return; + case 1: + if (!str || !*str) { + (*buf)[0] = '\0'; + return; + } + (*buf)[0] = '\0'; + *len = 0; + (*buf)++; + return; + default: + if (!str || !*str) { + (*buf)[0] = '\0'; + return; + } + src_len = g_strlcpy (*buf, str, *len); + if (src_len >= *len) { + *buf = &(*buf)[*len]; + *len = 0; + } else { + *buf = &(*buf)[src_len]; + *len -= src_len; + } + return; + } +} + +void +nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...) +{ + char *p = *buf; + va_list args; + gint retval; + + if (*len == 0) + return; + + va_start (args, format); + retval = g_vsnprintf (p, *len, format, args); + va_end (args); + + if (retval >= *len) { + *buf = &p[*len]; + *len = 0; + } else { + *buf = &p[retval]; + *len -= retval; + } +} + +/*****************************************************************************/ + +/** + * _nm_utils_ip4_prefix_to_netmask: + * @prefix: a CIDR prefix + * + * Returns: the netmask represented by the prefix, in network byte order + **/ +guint32 +_nm_utils_ip4_prefix_to_netmask (guint32 prefix) +{ + return prefix < 32 ? ~htonl(0xFFFFFFFF >> prefix) : 0xFFFFFFFF; +} + +/** + * _nm_utils_ip4_get_default_prefix: + * @ip: an IPv4 address (in network byte order) + * + * When the Internet was originally set up, various ranges of IP addresses were + * segmented into three network classes: A, B, and C. This function will return + * a prefix that is associated with the IP address specified defining where it + * falls in the predefined classes. + * + * Returns: the default class prefix for the given IP + **/ +/* The function is originally from ipcalc.c of Red Hat's initscripts. */ +guint32 +_nm_utils_ip4_get_default_prefix (guint32 ip) +{ + if (((ntohl (ip) & 0xFF000000) >> 24) <= 127) + return 8; /* Class A - 255.0.0.0 */ + else if (((ntohl (ip) & 0xFF000000) >> 24) <= 191) + return 16; /* Class B - 255.255.0.0 */ + + return 24; /* Class C - 255.255.255.0 */ +} + +gboolean +nm_utils_ip_is_site_local (int addr_family, + const void *address) +{ + in_addr_t addr4; + + switch (addr_family) { + case AF_INET: + /* RFC1918 private addresses + * 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 */ + addr4 = ntohl (*((const in_addr_t *) address)); + return (addr4 & 0xff000000) == 0x0a000000 + || (addr4 & 0xfff00000) == 0xac100000 + || (addr4 & 0xffff0000) == 0xc0a80000; + case AF_INET6: + return IN6_IS_ADDR_SITELOCAL (address); + default: + g_return_val_if_reached (FALSE); + } +} + +/*****************************************************************************/ + +gboolean +nm_utils_parse_inaddr_bin (const char *text, + int family, + gpointer out_addr) +{ + NMIPAddr addrbin; + + g_return_val_if_fail (text, FALSE); + + if (family == AF_UNSPEC) + family = strchr (text, ':') ? AF_INET6 : AF_INET; + else + g_return_val_if_fail (NM_IN_SET (family, AF_INET, AF_INET6), FALSE); + + if (inet_pton (family, text, out_addr ?: &addrbin) != 1) + return FALSE; + return TRUE; +} + +gboolean +nm_utils_parse_inaddr (const char *text, + int family, + char **out_addr) +{ + NMIPAddr addrbin; + char addrstr_buf[MAX (INET_ADDRSTRLEN, INET6_ADDRSTRLEN)]; + + if (!nm_utils_parse_inaddr_bin (text, family, &addrbin)) + return FALSE; + NM_SET_OUT (out_addr, g_strdup (inet_ntop (family, &addrbin, addrstr_buf, sizeof (addrstr_buf)))); + return TRUE; +} + +gboolean +nm_utils_parse_inaddr_prefix_bin (const char *text, + int family, + gpointer out_addr, + int *out_prefix) +{ + gs_free char *addrstr_free = NULL; + int prefix = -1; + const char *slash; + const char *addrstr; + NMIPAddr addrbin; + int addr_len; + + g_return_val_if_fail (text, FALSE); + + if (family == AF_UNSPEC) + family = strchr (text, ':') ? AF_INET6 : AF_INET; + + if (family == AF_INET) + addr_len = sizeof (in_addr_t); + else if (family == AF_INET6) + addr_len = sizeof (struct in6_addr); + else + g_return_val_if_reached (FALSE); + + slash = strchr (text, '/'); + if (slash) + addrstr = addrstr_free = g_strndup (text, slash - text); + else + addrstr = text; + + if (inet_pton (family, addrstr, &addrbin) != 1) + return FALSE; + + if (slash) { + prefix = _nm_utils_ascii_str_to_int64 (slash + 1, 10, + 0, + family == AF_INET ? 32 : 128, + -1); + if (prefix == -1) + return FALSE; + } + + if (out_addr) + memcpy (out_addr, &addrbin, addr_len); + NM_SET_OUT (out_prefix, prefix); + return TRUE; +} + +gboolean +nm_utils_parse_inaddr_prefix (const char *text, + int family, + char **out_addr, + int *out_prefix) +{ + NMIPAddr addrbin; + char addrstr_buf[MAX (INET_ADDRSTRLEN, INET6_ADDRSTRLEN)]; + + if (!nm_utils_parse_inaddr_prefix_bin (text, family, &addrbin, out_prefix)) + return FALSE; + NM_SET_OUT (out_addr, g_strdup (inet_ntop (family, &addrbin, addrstr_buf, sizeof (addrstr_buf)))); + return TRUE; +} + +/*****************************************************************************/ + +/* _nm_utils_ascii_str_to_int64: + * + * A wrapper for g_ascii_strtoll, that checks whether the whole string + * can be successfully converted to a number and is within a given + * range. On any error, @fallback will be returned and %errno will be set + * to a non-zero value. On success, %errno will be set to zero, check %errno + * for errors. Any trailing or leading (ascii) white space is ignored and the + * functions is locale independent. + * + * The function is guaranteed to return a value between @min and @max + * (inclusive) or @fallback. Also, the parsing is rather strict, it does + * not allow for any unrecognized characters, except leading and trailing + * white space. + **/ +gint64 +_nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback) +{ + gint64 v; + const char *s = NULL; + + if (str) { + while (g_ascii_isspace (str[0])) + str++; + } + if (!str || !str[0]) { + errno = EINVAL; + return fallback; + } + + errno = 0; + v = g_ascii_strtoll (str, (char **) &s, base); + + if (errno != 0) + return fallback; + if (s[0] != '\0') { + while (g_ascii_isspace (s[0])) + s++; + if (s[0] != '\0') { + errno = EINVAL; + return fallback; + } + } + if (v > max || v < min) { + errno = ERANGE; + return fallback; + } + + return v; +} + +/*****************************************************************************/ + +/** + * nm_utils_strsplit_set: + * @str: the string to split. + * @delimiters: the set of delimiters. If %NULL, defaults to " \t\n", + * like bash's $IFS. + * + * This is a replacement for g_strsplit_set() which avoids copying + * each word once (the entire strv array), but instead copies it once + * and all words point into that internal copy. + * + * Another difference from g_strsplit_set() is that this never returns + * empty words. Multiple delimiters are combined and treated as one. + * + * Returns: %NULL if @str is %NULL or contains only delimiters. + * Otherwise, a %NULL terminated strv array containing non-empty + * words, split at the delimiter characters (delimiter characters + * are removed). + * The strings to which the result strv array points to are allocated + * after the returned result itself. Don't free the strings themself, + * but free everything with g_free(). + */ +const char ** +nm_utils_strsplit_set (const char *str, const char *delimiters) +{ + const char **ptr, **ptr0; + gsize alloc_size, plen, i; + gsize str_len; + char *s0; + char *s; + guint8 delimiters_table[256]; + + if (!str) + return NULL; + + /* initialize lookup table for delimiter */ + if (!delimiters) + delimiters = " \t\n"; + memset (delimiters_table, 0, sizeof (delimiters_table)); + for (i = 0; delimiters[i]; i++) + delimiters_table[(guint8) delimiters[i]] = 1; + +#define _is_delimiter(ch, delimiters_table) \ + ((delimiters_table)[(guint8) (ch)] != 0) + + /* skip initial delimiters, and return of the remaining string is + * empty. */ + while (_is_delimiter (str[0], delimiters_table)) + str++; + if (!str[0]) + return NULL; + + str_len = strlen (str) + 1; + alloc_size = 8; + + /* we allocate the buffer larger, so to copy @str at the + * end of it as @s0. */ + ptr0 = g_malloc ((sizeof (const char *) * (alloc_size + 1)) + str_len); + s0 = (char *) &ptr0[alloc_size + 1]; + memcpy (s0, str, str_len); + + plen = 0; + s = s0; + ptr = ptr0; + + while (TRUE) { + if (plen >= alloc_size) { + const char **ptr_old = ptr; + + /* reallocate the buffer. Note that for now the string + * continues to be in ptr0/s0. We fix that at the end. */ + alloc_size += 2; + ptr = g_malloc ((sizeof (const char *) * (alloc_size + 1)) + str_len); + memcpy (ptr, ptr_old, sizeof (const char *) * plen); + if (ptr_old != ptr0) + g_free (ptr_old); + } + + ptr[plen++] = s; + + nm_assert (s[0] && !_is_delimiter (s[0], delimiters_table)); + + while (TRUE) { + s++; + if (_is_delimiter (s[0], delimiters_table)) + break; + if (s[0] == '\0') + goto done; + } + + s[0] = '\0'; + s++; + while (_is_delimiter (s[0], delimiters_table)) + s++; + if (s[0] == '\0') + break; + } +done: + ptr[plen] = NULL; + + if (ptr != ptr0) { + /* we reallocated the buffer. We must copy over the + * string @s0 and adjust the pointers. */ + s = (char *) &ptr[alloc_size + 1]; + memcpy (s, s0, str_len); + for (i = 0; i < plen; i++) + ptr[i] = &s[ptr[i] - s0]; + g_free (ptr0); + } + + return ptr; +} + +/** + * nm_utils_strv_find_first: + * @list: the strv list to search + * @len: the length of the list, or a negative value if @list is %NULL terminated. + * @needle: the value to search for. The search is done using strcmp(). + * + * Searches @list for @needle and returns the index of the first match (based + * on strcmp()). + * + * For convenience, @list has type 'char**' instead of 'const char **'. + * + * Returns: index of first occurrence or -1 if @needle is not found in @list. + */ +gssize +nm_utils_strv_find_first (char **list, gssize len, const char *needle) +{ + gssize i; + + if (len > 0) { + g_return_val_if_fail (list, -1); + + if (!needle) { + /* if we search a list with known length, %NULL is a valid @needle. */ + for (i = 0; i < len; i++) { + if (!list[i]) + return i; + } + } else { + for (i = 0; i < len; i++) { + if (list[i] && !strcmp (needle, list[i])) + return i; + } + } + } else if (len < 0) { + g_return_val_if_fail (needle, -1); + + if (list) { + for (i = 0; list[i]; i++) { + if (strcmp (needle, list[i]) == 0) + return i; + } + } + } + return -1; +} + +char ** +_nm_utils_strv_cleanup (char **strv, + gboolean strip_whitespace, + gboolean skip_empty, + gboolean skip_repeated) +{ + guint i, j; + + if (!strv || !*strv) + return strv; + + if (strip_whitespace) { + for (i = 0; strv[i]; i++) + g_strstrip (strv[i]); + } + if (!skip_empty && !skip_repeated) + return strv; + j = 0; + for (i = 0; strv[i]; i++) { + if ( (skip_empty && !*strv[i]) + || (skip_repeated && nm_utils_strv_find_first (strv, j, strv[i]) >= 0)) + g_free (strv[i]); + else + strv[j++] = strv[i]; + } + strv[j] = NULL; + return strv; +} + +/*****************************************************************************/ + +gint +_nm_utils_ascii_str_to_bool (const char *str, + gint default_value) +{ + gsize len; + char *s = NULL; + + if (!str) + return default_value; + + while (str[0] && g_ascii_isspace (str[0])) + str++; + + if (!str[0]) + return default_value; + + len = strlen (str); + if (g_ascii_isspace (str[len - 1])) { + s = g_strdup (str); + g_strchomp (s); + str = s; + } + + if (!g_ascii_strcasecmp (str, "true") || !g_ascii_strcasecmp (str, "yes") || !g_ascii_strcasecmp (str, "on") || !g_ascii_strcasecmp (str, "1")) + default_value = TRUE; + else if (!g_ascii_strcasecmp (str, "false") || !g_ascii_strcasecmp (str, "no") || !g_ascii_strcasecmp (str, "off") || !g_ascii_strcasecmp (str, "0")) + default_value = FALSE; + if (s) + g_free (s); + return default_value; +} + +/*****************************************************************************/ + +NM_CACHED_QUARK_FCN ("nm-utils-error-quark", nm_utils_error_quark) + +void +nm_utils_error_set_cancelled (GError **error, + gboolean is_disposing, + const char *instance_name) +{ + if (is_disposing) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_CANCELLED_DISPOSING, + "Disposing %s instance", + instance_name && *instance_name ? instance_name : "source"); + } else { + g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_CANCELLED, + "Request cancelled"); + } +} + +gboolean +nm_utils_error_is_cancelled (GError *error, + gboolean consider_is_disposing) +{ + if (error) { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return TRUE; + if ( consider_is_disposing + && g_error_matches (error, NM_UTILS_ERROR, NM_UTILS_ERROR_CANCELLED_DISPOSING)) + return TRUE; + } + return FALSE; +} + +/*****************************************************************************/ + +/** + * nm_g_object_set_property: + * @object: the target object + * @property_name: the property name + * @value: the #GValue to set + * @error: (allow-none): optional error argument + * + * A reimplementation of g_object_set_property(), but instead + * returning an error instead of logging a warning. All g_object_set*() + * versions in glib require you to not pass invalid types or they will + * log a g_warning() -- without reporting an error. We don't want that, + * so we need to hack error checking around it. + * + * Returns: whether the value was successfully set. + */ +gboolean +nm_g_object_set_property (GObject *object, + const gchar *property_name, + const GValue *value, + GError **error) +{ + GParamSpec *pspec; + nm_auto_unset_gvalue GValue tmp_value = G_VALUE_INIT; + GObjectClass *klass; + + g_return_val_if_fail (G_IS_OBJECT (object), FALSE); + g_return_val_if_fail (property_name != NULL, FALSE); + g_return_val_if_fail (G_IS_VALUE (value), FALSE); + g_return_val_if_fail (!error || !*error, FALSE); + + /* g_object_class_find_property() does g_param_spec_get_redirect_target(), + * where we differ from a plain g_object_set_property(). */ + pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object), property_name); + + if (!pspec) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("object class '%s' has no property named '%s'"), + G_OBJECT_TYPE_NAME (object), + property_name); + return FALSE; + } + if (!(pspec->flags & G_PARAM_WRITABLE)) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("property '%s' of object class '%s' is not writable"), + pspec->name, + G_OBJECT_TYPE_NAME (object)); + return FALSE; + } + if ((pspec->flags & G_PARAM_CONSTRUCT_ONLY)) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("construct property \"%s\" for object '%s' can't be set after construction"), + pspec->name, G_OBJECT_TYPE_NAME (object)); + return FALSE; + } + + klass = g_type_class_peek (pspec->owner_type); + if (klass == NULL) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("'%s::%s' is not a valid property name; '%s' is not a GObject subtype"), + g_type_name (pspec->owner_type), pspec->name, g_type_name (pspec->owner_type)); + return FALSE; + } + + /* provide a copy to work from, convert (if necessary) and validate */ + g_value_init (&tmp_value, pspec->value_type); + if (!g_value_transform (value, &tmp_value)) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("unable to set property '%s' of type '%s' from value of type '%s'"), + pspec->name, + g_type_name (pspec->value_type), + G_VALUE_TYPE_NAME (value)); + return FALSE; + } + if ( g_param_value_validate (pspec, &tmp_value) + && !(pspec->flags & G_PARAM_LAX_VALIDATION)) { + gs_free char *contents = g_strdup_value_contents (value); + + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("value \"%s\" of type '%s' is invalid or out of range for property '%s' of type '%s'"), + contents, + G_VALUE_TYPE_NAME (value), + pspec->name, + g_type_name (pspec->value_type)); + return FALSE; + } + + g_object_set_property (object, property_name, &tmp_value); + return TRUE; +} + +GParamSpec * +nm_g_object_class_find_property_from_gtype (GType gtype, + const char *property_name) +{ + nm_auto_unref_gtypeclass GObjectClass *gclass = NULL; + + gclass = g_type_class_ref (gtype); + return g_object_class_find_property (gclass, property_name); +} + +/*****************************************************************************/ + +static void +_str_append_escape (GString *s, char ch) +{ + g_string_append_c (s, '\\'); + g_string_append_c (s, '0' + ((((guchar) ch) >> 6) & 07)); + g_string_append_c (s, '0' + ((((guchar) ch) >> 3) & 07)); + g_string_append_c (s, '0' + ( ((guchar) ch) & 07)); +} + +/** + * nm_utils_str_utf8safe_escape: + * @str: NUL terminated input string, possibly in utf-8 encoding + * @flags: #NMUtilsStrUtf8SafeFlags flags + * @to_free: (out): return the pointer location of the string + * if a copying was necessary. + * + * Returns the possible non-UTF-8 NUL terminated string @str + * and uses backslash escaping (C escaping, like g_strescape()) + * to sanitize non UTF-8 characters. The result is valid + * UTF-8. + * + * The operation can be reverted with g_strcompress() or + * nm_utils_str_utf8safe_unescape(). + * + * Depending on @flags, valid UTF-8 characters are not escaped at all + * (except the escape character '\\'). This is the difference to g_strescape(), + * which escapes all non-ASCII characters. This allows to pass on + * valid UTF-8 characters as-is and can be directly shown to the user + * as UTF-8 -- with exception of the backslash escape character, + * invalid UTF-8 sequences, and other (depending on @flags). + * + * Returns: the escaped input string, as valid UTF-8. If no escaping + * is necessary, it returns the input @str. Otherwise, an allocated + * string @to_free is returned which must be freed by the caller + * with g_free. The escaping can be reverted by g_strcompress(). + **/ +const char * +nm_utils_str_utf8safe_escape (const char *str, NMUtilsStrUtf8SafeFlags flags, char **to_free) +{ + const char *p = NULL; + GString *s; + + g_return_val_if_fail (to_free, NULL); + + *to_free = NULL; + if (!str || !str[0]) + return str; + + if ( g_utf8_validate (str, -1, &p) + && !NM_STRCHAR_ANY (str, ch, + ( ch == '\\' \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL) \ + && ch < ' ') \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII) \ + && ((guchar) ch) >= 127)))) + return str; + + s = g_string_sized_new ((p - str) + strlen (p) + 5); + + do { + for (; str < p; str++) { + char ch = str[0]; + + if (ch == '\\') + g_string_append (s, "\\\\"); + else if ( ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL) \ + && ch < ' ') \ + || ( NM_FLAGS_HAS (flags, NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII) \ + && ((guchar) ch) >= 127)) + _str_append_escape (s, ch); + else + g_string_append_c (s, ch); + } + + if (p[0] == '\0') + break; + _str_append_escape (s, p[0]); + + str = &p[1]; + g_utf8_validate (str, -1, &p); + } while (TRUE); + + *to_free = g_string_free (s, FALSE); + return *to_free; +} + +const char * +nm_utils_str_utf8safe_unescape (const char *str, char **to_free) +{ + g_return_val_if_fail (to_free, NULL); + + if (!str || !strchr (str, '\\')) { + *to_free = NULL; + return str; + } + return (*to_free = g_strcompress (str)); +} + +/** + * nm_utils_str_utf8safe_escape_cp: + * @str: NUL terminated input string, possibly in utf-8 encoding + * @flags: #NMUtilsStrUtf8SafeFlags flags + * + * Like nm_utils_str_utf8safe_escape(), except the returned value + * is always a copy of the input and must be freed by the caller. + * + * Returns: the escaped input string in UTF-8 encoding. The returned + * value should be freed with g_free(). + * The escaping can be reverted by g_strcompress(). + **/ +char * +nm_utils_str_utf8safe_escape_cp (const char *str, NMUtilsStrUtf8SafeFlags flags) +{ + char *s; + + nm_utils_str_utf8safe_escape (str, flags, &s); + return s ?: g_strdup (str); +} + +char * +nm_utils_str_utf8safe_unescape_cp (const char *str) +{ + return str ? g_strcompress (str) : NULL; +} + +char * +nm_utils_str_utf8safe_escape_take (char *str, NMUtilsStrUtf8SafeFlags flags) +{ + char *str_to_free; + + nm_utils_str_utf8safe_escape (str, flags, &str_to_free); + if (str_to_free) { + g_free (str); + return str_to_free; + } + return str; +} diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h new file mode 100644 index 0000000..4a93016 --- /dev/null +++ b/shared/nm-utils/nm-shared-utils.h @@ -0,0 +1,302 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* NetworkManager -- Network link manager + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * (C) Copyright 2016 Red Hat, Inc. + */ + +#ifndef __NM_SHARED_UTILS_H__ +#define __NM_SHARED_UTILS_H__ + +#include + +/*****************************************************************************/ + +typedef struct { + union { + guint8 addr_ptr[1]; + in_addr_t addr4; + struct in6_addr addr6; + + /* NMIPAddr is really a union for IP addresses. + * However, as ethernet addresses fit in here nicely, use + * it also for an ethernet MAC address. */ + guint8 addr_eth[6 /*ETH_ALEN*/]; + }; +} NMIPAddr; + +extern const NMIPAddr nm_ip_addr_zero; + +/*****************************************************************************/ + +#define NM_CMP_RETURN(c) \ + G_STMT_START { \ + const int _cc = (c); \ + if (_cc) \ + return _cc < 0 ? -1 : 1; \ + } G_STMT_END + +#define NM_CMP_SELF(a, b) \ + G_STMT_START { \ + typeof (a) _a = (a); \ + typeof (b) _b = (b); \ + \ + if (_a == _b) \ + return 0; \ + if (!_a) \ + return -1; \ + if (!_b) \ + return 1; \ + } G_STMT_END + +#define NM_CMP_DIRECT(a, b) \ + G_STMT_START { \ + typeof (a) _a = (a); \ + typeof (b) _b = (b); \ + \ + if (_a != _b) \ + return (_a < _b) ? -1 : 1; \ + } G_STMT_END + +#define NM_CMP_DIRECT_MEMCMP(a, b, size) \ + NM_CMP_RETURN (memcmp ((a), (b), (size))) + +#define NM_CMP_DIRECT_IN6ADDR(a, b) \ + G_STMT_START { \ + const struct in6_addr *const _a = (a); \ + const struct in6_addr *const _b = (b); \ + NM_CMP_RETURN (memcmp (_a, _b, sizeof (struct in6_addr))); \ + } G_STMT_END + +#define NM_CMP_FIELD(a, b, field) \ + NM_CMP_DIRECT (((a)->field), ((b)->field)) + +#define NM_CMP_FIELD_UNSAFE(a, b, field) \ + G_STMT_START { \ + /* it's unsafe, because it evaluates the arguments more then once. + * This is necessary for bitfields, for which typeof() doesn't work. */ \ + if (((a)->field) != ((b)->field)) \ + return ((a)->field < ((b)->field)) ? -1 : 1; \ + } G_STMT_END + +#define NM_CMP_FIELD_BOOL(a, b, field) \ + NM_CMP_DIRECT (!!((a)->field), !!((b)->field)) + +#define NM_CMP_FIELD_STR(a, b, field) \ + NM_CMP_RETURN (strcmp (((a)->field), ((b)->field))) + +#define NM_CMP_FIELD_STR_INTERNED(a, b, field) \ + G_STMT_START { \ + const char *_a = ((a)->field); \ + const char *_b = ((b)->field); \ + \ + if (_a != _b) { \ + NM_CMP_RETURN (g_strcmp0 (_a, _b)); \ + } \ + } G_STMT_END + +#define NM_CMP_FIELD_STR0(a, b, field) \ + NM_CMP_RETURN (g_strcmp0 (((a)->field), ((b)->field))) + +#define NM_CMP_FIELD_MEMCMP_LEN(a, b, field, len) \ + NM_CMP_RETURN (memcmp (&((a)->field), &((b)->field), \ + MIN (len, sizeof ((a)->field)))) + +#define NM_CMP_FIELD_MEMCMP(a, b, field) \ + NM_CMP_RETURN (memcmp (&((a)->field), \ + &((b)->field), \ + sizeof ((a)->field))) + +#define NM_CMP_FIELD_IN6ADDR(a, b, field) \ + G_STMT_START { \ + const struct in6_addr *const _a = &((a)->field); \ + const struct in6_addr *const _b = &((b)->field); \ + NM_CMP_RETURN (memcmp (_a, _b, sizeof (struct in6_addr))); \ + } G_STMT_END + +/*****************************************************************************/ + +extern const void *const _NM_PTRARRAY_EMPTY[1]; + +#define NM_PTRARRAY_EMPTY(type) ((type const*) _NM_PTRARRAY_EMPTY) + +static inline void +_nm_utils_strbuf_init (char *buf, gsize len, char **p_buf_ptr, gsize *p_buf_len) +{ + NM_SET_OUT (p_buf_len, len); + NM_SET_OUT (p_buf_ptr, buf); + buf[0] = '\0'; +} + +#define nm_utils_strbuf_init(buf, p_buf_ptr, p_buf_len) \ + G_STMT_START { \ + G_STATIC_ASSERT (G_N_ELEMENTS (buf) == sizeof (buf) && sizeof (buf) > sizeof (char *)); \ + _nm_utils_strbuf_init ((buf), sizeof (buf), (p_buf_ptr), (p_buf_len)); \ + } G_STMT_END +void nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...) _nm_printf (3, 4); +void nm_utils_strbuf_append_c (char **buf, gsize *len, char c); +void nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str); + +/*****************************************************************************/ + +const char **nm_utils_strsplit_set (const char *str, const char *delimiters); + +gssize nm_utils_strv_find_first (char **list, gssize len, const char *needle); + +char **_nm_utils_strv_cleanup (char **strv, + gboolean strip_whitespace, + gboolean skip_empty, + gboolean skip_repeated); + +/*****************************************************************************/ + +guint32 _nm_utils_ip4_prefix_to_netmask (guint32 prefix); +guint32 _nm_utils_ip4_get_default_prefix (guint32 ip); + +gboolean nm_utils_ip_is_site_local (int addr_family, + const void *address); + +/*****************************************************************************/ + +gboolean nm_utils_parse_inaddr_bin (const char *text, + int family, + gpointer out_addr); + +gboolean nm_utils_parse_inaddr (const char *text, + int family, + char **out_addr); + +gboolean nm_utils_parse_inaddr_prefix_bin (const char *text, + int family, + gpointer out_addr, + int *out_prefix); + +gboolean nm_utils_parse_inaddr_prefix (const char *text, + int family, + char **out_addr, + int *out_prefix); + +gint64 _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback); + +gint _nm_utils_ascii_str_to_bool (const char *str, + gint default_value); + +/*****************************************************************************/ + +#define _nm_g_slice_free_fcn_define(mem_size) \ +static inline void \ +_nm_g_slice_free_fcn_##mem_size (gpointer mem_block) \ +{ \ + g_slice_free1 (mem_size, mem_block); \ +} + +_nm_g_slice_free_fcn_define (1) +_nm_g_slice_free_fcn_define (2) +_nm_g_slice_free_fcn_define (4) +_nm_g_slice_free_fcn_define (8) +_nm_g_slice_free_fcn_define (12) +_nm_g_slice_free_fcn_define (16) + +#define _nm_g_slice_free_fcn1(mem_size) \ + ({ \ + void (*_fcn) (gpointer); \ + \ + /* If mem_size is a compile time constant, the compiler + * will be able to optimize this. Hence, you don't want + * to call this with a non-constant size argument. */ \ + switch (mem_size) { \ + case 1: _fcn = _nm_g_slice_free_fcn_1; break; \ + case 2: _fcn = _nm_g_slice_free_fcn_2; break; \ + case 4: _fcn = _nm_g_slice_free_fcn_4; break; \ + case 8: _fcn = _nm_g_slice_free_fcn_8; break; \ + case 12: _fcn = _nm_g_slice_free_fcn_12; break; \ + case 16: _fcn = _nm_g_slice_free_fcn_16; break; \ + default: g_assert_not_reached (); _fcn = NULL; break; \ + } \ + _fcn; \ + }) + +/** + * nm_g_slice_free_fcn: + * @type: type argument for sizeof() operator that you would + * pass to g_slice_new(). + * + * Returns: a function pointer with GDestroyNotify signature + * for g_slice_free(type,*). + * + * Only certain types are implemented. You'll get an assertion + * using the wrong type. */ +#define nm_g_slice_free_fcn(type) (_nm_g_slice_free_fcn1 (sizeof (type))) + +#define nm_g_slice_free_fcn_gint64 (nm_g_slice_free_fcn (gint64)) + +/*****************************************************************************/ + +/** + * NMUtilsError: + * @NM_UTILS_ERROR_UNKNOWN: unknown or unclassified error + * @NM_UTILS_ERROR_CANCELLED_DISPOSING: when disposing an object that has + * pending aynchronous operations, the operation is cancelled with this + * error reason. Depending on the usage, this might indicate a bug because + * usually the target object should stay alive as long as there are pending + * operations. + * @NM_UTILS_ERROR_INVALID_ARGUMENT: invalid argument. + */ +typedef enum { + NM_UTILS_ERROR_UNKNOWN = 0, /*< nick=Unknown >*/ + NM_UTILS_ERROR_CANCELLED_DISPOSING, /*< nick=CancelledDisposing >*/ + NM_UTILS_ERROR_INVALID_ARGUMENT, /*< nick=InvalidArgument >*/ +} NMUtilsError; + +#define NM_UTILS_ERROR (nm_utils_error_quark ()) +GQuark nm_utils_error_quark (void); + +void nm_utils_error_set_cancelled (GError **error, + gboolean is_disposing, + const char *instance_name); +gboolean nm_utils_error_is_cancelled (GError *error, + gboolean consider_is_disposing); + +/*****************************************************************************/ + +gboolean nm_g_object_set_property (GObject *object, + const gchar *property_name, + const GValue *value, + GError **error); + +GParamSpec *nm_g_object_class_find_property_from_gtype (GType gtype, + const char *property_name); + +/*****************************************************************************/ + +typedef enum { + NM_UTILS_STR_UTF8_SAFE_FLAG_NONE = 0, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_CTRL = 0x0001, + NM_UTILS_STR_UTF8_SAFE_FLAG_ESCAPE_NON_ASCII = 0x0002, +} NMUtilsStrUtf8SafeFlags; + +const char *nm_utils_str_utf8safe_escape (const char *str, NMUtilsStrUtf8SafeFlags flags, char **to_free); +const char *nm_utils_str_utf8safe_unescape (const char *str, char **to_free); + +char *nm_utils_str_utf8safe_escape_cp (const char *str, NMUtilsStrUtf8SafeFlags flags); +char *nm_utils_str_utf8safe_unescape_cp (const char *str); + +char *nm_utils_str_utf8safe_escape_take (char *str, NMUtilsStrUtf8SafeFlags flags); + +/*****************************************************************************/ + +#endif /* __NM_SHARED_UTILS_H__ */ diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h new file mode 100644 index 0000000..f7a87aa --- /dev/null +++ b/shared/nm-utils/nm-test-utils.h @@ -0,0 +1,1930 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright 2014 Red Hat, Inc. + */ + +#ifndef __NM_TEST_UTILS_H__ +#define __NM_TEST_UTILS_H__ + +/******************************************************************************* + * HOWTO run tests. + * + * Our tests (make check) include this header-only file nm-test-utils.h. + * + * Logging: + * In tests, nm-logging redirects to glib logging. By default, glib suppresses all debug + * messages unless you set G_MESSAGES_DEBUG. To enable debug logging, you can explicitly set + * G_MESSAGES_DEBUG. Otherwise, nm-test will set G_MESSAGES_DEBUG=all in debug mode (see below). + * For nm-logging, you can configure the log-level and domains via NMTST_DEBUG environment + * variable. + * + * Assert-logging: + * Some tests assert against logged messages (g_test_expect_message()). + * By specifying no-expect-message in NMTST_DEBUG, you can disable assert logging + * and g_test_assert_expected_messages() will not fail. + * + * NMTST_SEED_RAND environment variable: + * Tests that use random numbers from nmtst_get_rand() get seeded randomly at each start. + * You can specify the seed by setting NMTST_SEED_RAND. Also, tests will print the seed + * to stdout, so that you know the chosen seed. + * + * + * NMTST_DEBUG environment variable: + * + * "debug", "no-debug": when at test is run in debug mode, it might behave differently, + * depending on the test. See nmtst_is_debug(). + * Known differences: + * - a test might leave the logging level unspecified. In this case, running in + * debug mode, will turn on DEBUG logging, otherwise WARN logging only. + * - if G_MESSAGES_DEBUG is unset, nm-test will set G_MESSAGES_DEBUG=all + * for tests that don't do assert-logging. + * Debug mode is determined as follows (highest priority first): + * - command line option --debug/--no-debug + * - NMTST_DEBUG=debug/no-debug + * - setting NMTST_DEBUG implies debugging turned on + * - g_test_verbose() + * + * "no-expect-message": for tests that would assert against log messages, disable + * those asserts. + * + * "log-level=LEVEL", "log-domains=DOMAIN": reset the log level and domain for tests. + * It only has an effect for nm-logging messages. + * This has no effect if the test asserts against logging (unless no-expect-message), + * otherwise, changing the logging would break tests. + * If you set the level to DEBUG or TRACE, it also sets G_MESSAGES_DEBUG=all (unless + * in assert-logging mode and unless G_MESSAGES_DEBUG is already defined). + * + * "TRACE", this is shorthand for "log-level=TRACE". + * + * "D", this is shorthand for "log-level=TRACE,no-expect-message". + * + * "sudo-cmd=PATH": when running root tests as normal user, the test will execute + * itself by invoking sudo at PATH. + * For example + * NMTST_DEBUG="sudo-cmd=$PWD/tools/test-sudo-wrapper.sh" make -C src/platform/tests/ check + * + * "slow|quick|thorough": enable/disable long-running tests. This sets nmtst_test_quick(). + * Whether long-running tests are enabled is determined as follows (highest priority first): + * - specifying the value in NMTST_DEBUG has highest priority + * - respect g_test_quick(), if the command line contains '-mslow', '-mquick', '-mthorough'. + * - use compile time default (CFLAGS=-DNMTST_TEST_QUICK=TRUE) + * - enable slow tests by default + * + * "p=PATH"|"s=PATH": passes the path to g_test_init() as "-p" and "-s", respectively. + * Unfortunately, these options conflict with "--tap" which our makefile passes to the + * tests, thus it's only useful outside of `make check`. + * + *******************************************************************************/ + +#include "nm-default.h" + +#if defined(NM_ASSERT_NO_MSG) && NM_ASSERT_NO_MSG +#undef g_return_if_fail_warning +#undef g_assertion_message_expr +#endif + +#include +#include +#include +#include +#include +#include + +#include "nm-utils.h" + +/*****************************************************************************/ + +#define NMTST_G_RETURN_MSG_S(expr) "*: assertion '"NM_ASSERT_G_RETURN_EXPR(expr)"' failed" +#define NMTST_G_RETURN_MSG(expr) NMTST_G_RETURN_MSG_S(#expr) + +/*****************************************************************************/ + +/* general purpose functions that have no dependency on other nmtst functions */ + +#define nmtst_assert_error(error, expect_error_domain, expect_error_code, expect_error_pattern) \ + G_STMT_START { \ + GError *_error = (error); \ + GQuark _expect_error_domain = (expect_error_domain); \ + const char *_expect_error_pattern = (expect_error_pattern); \ + \ + if (_expect_error_domain) \ + g_assert_error (_error, _expect_error_domain, (expect_error_code)); \ + else \ + g_assert (_error); \ + g_assert (_error->message); \ + if ( _expect_error_pattern \ + && !g_pattern_match_simple (_expect_error_pattern, _error->message)) { \ + g_error ("%s:%d: error message does not have expected pattern '%s'. Instead it is '%s' (%s, %d)", \ + __FILE__, __LINE__, \ + _expect_error_pattern, _error->message, g_quark_to_string (_error->domain), _error->code); \ + } \ + } G_STMT_END + +#define NMTST_WAIT(max_wait_ms, wait) \ + ({ \ + gboolean _not_expired = TRUE; \ + const gint64 nmtst_wait_start_us = g_get_monotonic_time (); \ + const gint64 nmtst_wait_duration_us = (max_wait_ms) * 1000L; \ + const gint64 nmtst_wait_end_us = nmtst_wait_start_us + nmtst_wait_duration_us; \ + \ + while (TRUE) { \ + { wait }; \ + if (g_get_monotonic_time () > nmtst_wait_end_us) { \ + _not_expired = FALSE; \ + break; \ + } \ + } \ + _not_expired; \ + }) + +#define NMTST_WAIT_ASSERT(max_wait_ms, wait) \ + G_STMT_START { \ + if (!(NMTST_WAIT (max_wait_ms, wait))) \ + g_assert_not_reached (); \ + } G_STMT_END + +#define nmtst_assert_success(success, error) \ + G_STMT_START { \ + g_assert_no_error (error); \ + g_assert ((success)); \ + } G_STMT_END + +#define nmtst_assert_no_success(success, error) \ + G_STMT_START { \ + g_assert (error); \ + g_assert (!(success)); \ + } G_STMT_END + +/*****************************************************************************/ + +struct __nmtst_internal +{ + GRand *rand0; + guint32 rand_seed; + GRand *rand; + gboolean is_debug; + gboolean assert_logging; + gboolean no_expect_message; + gboolean test_quick; + gboolean test_tap_log; + char *sudo_cmd; + char **orig_argv; +}; + +extern struct __nmtst_internal __nmtst_internal; + +#define NMTST_DEFINE() \ +struct __nmtst_internal __nmtst_internal = { 0 }; \ +\ +__attribute__ ((destructor)) static void \ +_nmtst_exit (void) \ +{ \ + __nmtst_internal.assert_logging = FALSE; \ + g_test_assert_expected_messages (); \ + nmtst_free (); \ +} + + +static inline gboolean +nmtst_initialized (void) +{ + return !!__nmtst_internal.rand0; +} + +#define __NMTST_LOG(cmd, ...) \ + G_STMT_START { \ + g_assert (nmtst_initialized ()); \ + if (!__nmtst_internal.assert_logging || __nmtst_internal.no_expect_message) { \ + cmd (__VA_ARGS__); \ + } else { \ + printf (_NM_UTILS_MACRO_FIRST (__VA_ARGS__) "\n" _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +/* split the string inplace at specific delimiters, allowing escaping with '\\'. + * Returns a zero terminated array of pointers into @str. + * + * The caller must g_free() the returned argv array. + **/ +static inline char ** +nmtst_str_split (char *str, const char *delimiters) +{ + const char *d; + GArray *result = g_array_sized_new (TRUE, FALSE, sizeof (char *), 3); + + g_assert (str); + g_assert (delimiters && !strchr (delimiters, '\\')); + + while (*str) { + gsize i = 0, j = 0; + + while (TRUE) { + char c = str[i]; + + if (c == '\0') { + str[j++] = 0; + break; + } else if (c == '\\') { + str[j++] = str[++i]; + if (!str[i]) + break; + } else { + for (d = delimiters; *d; d++) { + if (c == *d) { + str[j++] = 0; + i++; + goto BREAK_INNER_LOOPS; + } + } + str[j++] = c; + } + i++; + } + +BREAK_INNER_LOOPS: + g_array_append_val (result, str); + str = &str[i]; + } + + return (char **) g_array_free (result, FALSE); +} + + +/* free instances allocated by nmtst (especially nmtst_init()) on shutdown + * to release memory. After nmtst_free(), the test is uninitialized again. */ +static inline void +nmtst_free (void) +{ + if (!nmtst_initialized ()) + return; + + g_rand_free (__nmtst_internal.rand0); + if (__nmtst_internal.rand) + g_rand_free (__nmtst_internal.rand); + g_free (__nmtst_internal.sudo_cmd); + g_strfreev (__nmtst_internal.orig_argv); + + memset (&__nmtst_internal, 0, sizeof (__nmtst_internal)); +} + +static inline void +_nmtst_log_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data) +{ + g_print ("%s\n", message); +} + +static inline void +__nmtst_init (int *argc, char ***argv, gboolean assert_logging, const char *log_level, const char *log_domains, gboolean *out_set_logging) +{ + const char *nmtst_debug; + gboolean is_debug = FALSE; + char *c_log_level = NULL, *c_log_domains = NULL; + char *sudo_cmd = NULL; + GArray *debug_messages = g_array_new (TRUE, FALSE, sizeof (char *)); + int i; + gboolean no_expect_message = FALSE; + gboolean _out_set_logging; + gboolean test_quick = FALSE; + gboolean test_quick_set = FALSE; + gboolean test_quick_argv = FALSE; + gs_unref_ptrarray GPtrArray *p_tests = NULL; + gs_unref_ptrarray GPtrArray *s_tests = NULL; + + if (!out_set_logging) + out_set_logging = &_out_set_logging; + *out_set_logging = FALSE; + + g_assert (!nmtst_initialized ()); + + g_assert (!((!!argc) ^ (!!argv))); + g_assert (!argc || (g_strv_length (*argv) == *argc)); + g_assert (!assert_logging || (!log_level && !log_domains)); + +#ifdef __NETWORKMANAGER_UTILS_H__ + if (!nm_utils_get_testing_initialized ()) + _nm_utils_set_testing (_NM_UTILS_TEST_GENERAL); +#endif + + if (argc) + __nmtst_internal.orig_argv = g_strdupv (*argv); + + __nmtst_internal.assert_logging = !!assert_logging; + + nm_g_type_init (); + + is_debug = g_test_verbose (); + + nmtst_debug = g_getenv ("NMTST_DEBUG"); + if (nmtst_debug) { + char **d_argv, **i_argv, *nmtst_debug_copy; + + /* By setting then NMTST_DEBUG variable, @is_debug is set automatically. + * This can be reverted with no-debug (on command line or environment variable). */ + is_debug = TRUE; + + nmtst_debug_copy = g_strdup (nmtst_debug); + d_argv = nmtst_str_split (nmtst_debug_copy, ",; \t\r\n"); + + for (i_argv = d_argv; *i_argv; i_argv++) { + const char *debug = *i_argv; + + if (!g_ascii_strcasecmp (debug, "debug")) + is_debug = TRUE; + else if (!g_ascii_strcasecmp (debug, "no-debug")) { + /* when specifying the NMTST_DEBUG variable, we set is_debug to true. Use this flag to disable this + * (e.g. for only setting the log-level, but not is_debug). */ + is_debug = FALSE; + } else if (!g_ascii_strncasecmp (debug, "log-level=", strlen ("log-level="))) { + g_free (c_log_level); + log_level = c_log_level = g_strdup (&debug[strlen ("log-level=")]); + } else if (!g_ascii_strcasecmp (debug, "D")) { + /* shorthand for "log-level=TRACE,no-expect-message" */ + g_free (c_log_level); + log_level = c_log_level = g_strdup ("TRACE"); + no_expect_message = TRUE; + } else if (!g_ascii_strcasecmp (debug, "TRACE")) { + g_free (c_log_level); + log_level = c_log_level = g_strdup ("TRACE"); + } else if (!g_ascii_strncasecmp (debug, "log-domains=", strlen ("log-domains="))) { + g_free (c_log_domains); + log_domains = c_log_domains = g_strdup (&debug[strlen ("log-domains=")]); + } else if (!g_ascii_strncasecmp (debug, "sudo-cmd=", strlen ("sudo-cmd="))) { + g_free (sudo_cmd); + sudo_cmd = g_strdup (&debug[strlen ("sudo-cmd=")]); + } else if (!g_ascii_strcasecmp (debug, "no-expect-message")) { + no_expect_message = TRUE; + } else if (!g_ascii_strncasecmp (debug, "p=", strlen ("p="))) { + if (!p_tests) + p_tests = g_ptr_array_new_with_free_func (g_free); + g_ptr_array_add (p_tests, g_strdup (&debug[strlen ("p=")])); + } else if (!g_ascii_strncasecmp (debug, "s=", strlen ("s="))) { + if (!s_tests) + s_tests = g_ptr_array_new_with_free_func (g_free); + g_ptr_array_add (s_tests, g_strdup (&debug[strlen ("s=")])); + } else if (!g_ascii_strcasecmp (debug, "slow") || !g_ascii_strcasecmp (debug, "thorough")) { + test_quick = FALSE; + test_quick_set = TRUE; + } else if (!g_ascii_strcasecmp (debug, "quick")) { + test_quick = TRUE; + test_quick_set = TRUE; + } else { + char *msg = g_strdup_printf (">>> nmtst: ignore unrecognized NMTST_DEBUG option \"%s\"", debug); + + g_array_append_val (debug_messages, msg); + } + } + + g_free (d_argv); + g_free (nmtst_debug_copy); + } + + if (__nmtst_internal.orig_argv) { + char **a = __nmtst_internal.orig_argv; + + for (; *a; a++) { + if (!g_ascii_strcasecmp (*a, "--debug")) + is_debug = TRUE; + else if (!g_ascii_strcasecmp (*a, "--no-debug")) + is_debug = FALSE; + else if ( !strcmp (*a, "-m=slow") + || !strcmp (*a, "-m=thorough") + || !strcmp (*a, "-m=quick") + || (!strcmp (*a, "-m") && *(a+1) + && ( !strcmp (*(a+1), "quick") + || !strcmp (*(a+1), "slow") + || !strcmp (*(a+1), "thorough")))) + test_quick_argv = TRUE; + else if (strcmp (*a, "--tap") == 0) + __nmtst_internal.test_tap_log = TRUE; + } + } + + if (!argc || g_test_initialized ()) { + if (p_tests || s_tests) { + char *msg = g_strdup_printf (">>> nmtst: ignore -p and -s options for test which calls g_test_init() itself"); + + g_array_append_val (debug_messages, msg); + } + } else { + /* g_test_init() is a variadic function, so we cannot pass it + * (variadic) arguments. If you need to pass additional parameters, + * call nmtst_init() with argc==NULL and call g_test_init() yourself. */ + + /* g_test_init() sets g_log_set_always_fatal() for G_LOG_LEVEL_WARNING + * and G_LOG_LEVEL_CRITICAL. So, beware that the test will fail if you + * have any WARN or ERR log messages -- unless you g_test_expect_message(). */ + GPtrArray *arg_array = g_ptr_array_new (); + gs_free char **arg_array_c = NULL; + int arg_array_n, j; + static char **s_tests_x, **p_tests_x; + + if (*argc) { + for (i = 0; i < *argc; i++) + g_ptr_array_add (arg_array, (*argv)[i]); + } else + g_ptr_array_add (arg_array, "./test"); + + if (test_quick_set && !test_quick_argv) + g_ptr_array_add (arg_array, "-m=quick"); + + if (!__nmtst_internal.test_tap_log) { + for (i = 0; p_tests && i < p_tests->len; i++) { + g_ptr_array_add (arg_array, "-p"); + g_ptr_array_add (arg_array, p_tests->pdata[i]); + } + for (i = 0; s_tests && i < s_tests->len; i++) { + g_ptr_array_add (arg_array, "-s"); + g_ptr_array_add (arg_array, s_tests->pdata[i]); + } + } else if (p_tests || s_tests) { + char *msg = g_strdup_printf (">>> nmtst: ignore -p and -s options for tap-tests"); + + g_array_append_val (debug_messages, msg); + } + + g_ptr_array_add (arg_array, NULL); + + arg_array_n = arg_array->len - 1; + arg_array_c = (char **) g_ptr_array_free (arg_array, FALSE); + + g_test_init (&arg_array_n, &arg_array_c, NULL); + + if (*argc > 1) { + /* collaps argc/argv by removing the arguments detected + * by g_test_init(). */ + for (i = 1, j = 1; i < *argc; i++) { + if ((*argv)[i] == arg_array_c[j]) + j++; + else + (*argv)[i] = NULL; + } + for (i = 1, j = 1; i < *argc; i++) { + if ((*argv)[i]) { + (*argv)[j++] = (*argv)[i]; + if (i >= j) + (*argv)[i] = NULL; + } + } + *argc = j; + } + + /* we must "leak" the test paths because they are not cloned by g_test_init(). */ + if (!__nmtst_internal.test_tap_log) { + if (p_tests) { + p_tests_x = (char **) g_ptr_array_free (p_tests, FALSE); + p_tests = NULL; + } + if (s_tests) { + s_tests_x = (char **) g_ptr_array_free (s_tests, FALSE); + s_tests = NULL; + } + } + } + + if (test_quick_set) + __nmtst_internal.test_quick = test_quick; + else if (test_quick_argv) + __nmtst_internal.test_quick = g_test_quick (); + else { +#ifdef NMTST_TEST_QUICK + __nmtst_internal.test_quick = NMTST_TEST_QUICK; +#else + __nmtst_internal.test_quick = FALSE; +#endif + } + + __nmtst_internal.is_debug = is_debug; + __nmtst_internal.rand0 = g_rand_new_with_seed (0); + __nmtst_internal.sudo_cmd = sudo_cmd; + __nmtst_internal.no_expect_message = no_expect_message; + + if (!log_level && log_domains) { + /* if the log level is not specified (but the domain is), we assume + * the caller wants to set it depending on is_debug */ + log_level = is_debug ? "DEBUG" : "WARN"; + } + + if (!__nmtst_internal.assert_logging) { + gboolean success = TRUE; +#ifdef _NMTST_INSIDE_CORE + success = nm_logging_setup (log_level, log_domains, NULL, NULL); + *out_set_logging = TRUE; +#endif + g_assert (success); +#if GLIB_CHECK_VERSION(2,34,0) + if (__nmtst_internal.no_expect_message) + g_log_set_always_fatal (G_LOG_FATAL_MASK); +#else + /* g_test_expect_message() is a NOP, so allow any messages */ + g_log_set_always_fatal (G_LOG_FATAL_MASK); +#endif + } else if (__nmtst_internal.no_expect_message) { + /* We have a test that would be assert_logging, but the user specified no_expect_message. + * This transforms g_test_expect_message() into a NOP, but we also have to relax + * g_log_set_always_fatal(), which was set by g_test_init(). */ + g_log_set_always_fatal (G_LOG_FATAL_MASK); +#ifdef _NMTST_INSIDE_CORE + if (c_log_domains || c_log_level) { + /* Normally, tests with assert_logging do not overwrite the logging level/domains because + * the logging statements are part of the assertions. But if the test is run with + * no-expect-message *and* the logging is set explicitly via environment variables, + * we still reset the logging. */ + gboolean success; + + success = nm_logging_setup (log_level, log_domains, NULL, NULL); + *out_set_logging = TRUE; + g_assert (success); + } +#endif + } else { +#if GLIB_CHECK_VERSION(2,34,0) + /* We were called not to set logging levels. This means, that the user + * expects to assert against (all) messages. Any uncought message is fatal. */ + g_log_set_always_fatal (G_LOG_LEVEL_MASK); +#else + /* g_test_expect_message() is a NOP, so allow any messages */ + g_log_set_always_fatal (G_LOG_FATAL_MASK); +#endif + } + + if ((!__nmtst_internal.assert_logging || (__nmtst_internal.assert_logging && __nmtst_internal.no_expect_message)) && + (is_debug || (c_log_level && (!g_ascii_strcasecmp (c_log_level, "DEBUG") || !g_ascii_strcasecmp (c_log_level, "TRACE")))) && + !g_getenv ("G_MESSAGES_DEBUG")) + { + /* if we are @is_debug or @log_level=="DEBUG" and + * G_MESSAGES_DEBUG is unset, we set G_MESSAGES_DEBUG=all. + * To disable this default behaviour, set G_MESSAGES_DEBUG='' */ + + /* Note that g_setenv is not thread safe, but you should anyway call + * nmtst_init() at the very start. */ + g_setenv ("G_MESSAGES_DEBUG", "all", TRUE); + } + + /* Delay messages until we setup logging. */ + for (i = 0; i < debug_messages->len; i++) + __NMTST_LOG (g_message, "%s", g_array_index (debug_messages, const char *, i)); + + g_strfreev ((char **) g_array_free (debug_messages, FALSE)); + g_free (c_log_level); + g_free (c_log_domains); + +#ifdef __NETWORKMANAGER_UTILS_H__ + /* ensure that monotonic timestamp is called (because it initially logs a line) */ + nm_utils_get_monotonic_timestamp_s (); +#endif + +#ifdef NM_UTILS_H + { + gs_free_error GError *error = NULL; + + if (!nm_utils_init (&error)) + g_assert_not_reached (); + g_assert_no_error (error); + } +#endif + + g_log_set_handler (G_LOG_DOMAIN, + G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, + _nmtst_log_handler, + NULL); +} + +#ifndef _NMTST_INSIDE_CORE +static inline void +nmtst_init (int *argc, char ***argv, gboolean assert_logging) +{ + __nmtst_init (argc, argv, assert_logging, NULL, NULL, NULL); +} +#endif + +static inline gboolean +nmtst_is_debug (void) +{ + g_assert (nmtst_initialized ()); + return __nmtst_internal.is_debug; +} + +static inline gboolean +nmtst_test_quick (void) +{ + g_assert (nmtst_initialized ()); + return __nmtst_internal.test_quick; +} + +#if GLIB_CHECK_VERSION(2,34,0) +#undef g_test_expect_message +#define g_test_expect_message(...) \ + G_STMT_START { \ + g_assert (nmtst_initialized ()); \ + if (__nmtst_internal.assert_logging && __nmtst_internal.no_expect_message) { \ + g_debug ("nmtst: assert-logging: g_test_expect_message %s", G_STRINGIFY ((__VA_ARGS__))); \ + } else { \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + g_test_expect_message (__VA_ARGS__); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + } \ + } G_STMT_END +#undef g_test_assert_expected_messages_internal +#define g_test_assert_expected_messages_internal(domain, file, line, func) \ + G_STMT_START { \ + const char *_domain = (domain); \ + const char *_file = (file); \ + const char *_func = (func); \ + int _line = (line); \ + \ + if (__nmtst_internal.assert_logging && __nmtst_internal.no_expect_message) \ + g_debug ("nmtst: assert-logging: g_test_assert_expected_messages(%s, %s:%d, %s)", _domain?:"", _file?:"", _line, _func?:""); \ + \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + g_test_assert_expected_messages_internal (_domain, _file, _line, _func); \ + G_GNUC_END_IGNORE_DEPRECATIONS \ + } G_STMT_END +#endif + +/*****************************************************************************/ + +typedef struct _NmtstTestData NmtstTestData; + +typedef void (*NmtstTestHandler) (const NmtstTestData *test_data); + +struct _NmtstTestData { + union { + const char *testpath; + char *_testpath; + }; + gsize n_args; + gpointer *args; + NmtstTestHandler _func_setup; + GTestDataFunc _func_test; + NmtstTestHandler _func_teardown; +}; + +static inline void +_nmtst_test_data_unpack (const NmtstTestData *test_data, gsize n_args, ...) +{ + gsize i; + va_list ap; + gpointer *p; + + g_assert (test_data); + g_assert_cmpint (n_args, ==, test_data->n_args); + + va_start (ap, n_args); + for (i = 0; i < n_args; i++) { + p = va_arg (ap, gpointer *); + + if (p) + *p = test_data->args[i]; + } + va_end (ap); +} +#define nmtst_test_data_unpack(test_data, ...) _nmtst_test_data_unpack(test_data, NM_NARG (__VA_ARGS__), ##__VA_ARGS__) + +static inline void +_nmtst_test_data_free (gpointer data) +{ + NmtstTestData *test_data = data; + + g_assert (test_data); + + g_free (test_data->_testpath); + g_free (test_data); +} + +static inline void +_nmtst_test_run (gconstpointer data) +{ + const NmtstTestData *test_data = data; + + if (test_data->_func_setup) + test_data->_func_setup (test_data); + + test_data->_func_test (test_data); + + if (test_data->_func_teardown) + test_data->_func_teardown (test_data); +} + +static inline void +_nmtst_add_test_func_full (const char *testpath, GTestDataFunc func_test, NmtstTestHandler func_setup, NmtstTestHandler func_teardown, gsize n_args, ...) +{ + gsize i; + NmtstTestData *data; + va_list ap; + + g_assert (testpath && testpath[0]); + g_assert (func_test); + + data = g_malloc0 (sizeof (NmtstTestData) + (sizeof (gpointer) * (n_args + 1))); + + data->_testpath = g_strdup (testpath); + data->_func_test = func_test; + data->_func_setup = func_setup; + data->_func_teardown = func_teardown; + data->n_args = n_args; + data->args = (gpointer) &data[1]; + va_start (ap, n_args); + for (i = 0; i < n_args; i++) + data->args[i] = va_arg (ap, gpointer); + data->args[i] = NULL; + va_end (ap); + + g_test_add_data_func_full (testpath, + data, + _nmtst_test_run, + _nmtst_test_data_free); +} +#define nmtst_add_test_func_full(testpath, func_test, func_setup, func_teardown, ...) _nmtst_add_test_func_full(testpath, func_test, func_setup, func_teardown, NM_NARG (__VA_ARGS__), ##__VA_ARGS__) +#define nmtst_add_test_func(testpath, func_test, ...) nmtst_add_test_func_full(testpath, func_test, NULL, NULL, ##__VA_ARGS__) + +/*****************************************************************************/ + +static inline GRand * +nmtst_get_rand0 (void) +{ + g_assert (nmtst_initialized ()); + return __nmtst_internal.rand0; +} + +static inline GRand * +nmtst_get_rand (void) +{ + g_assert (nmtst_initialized ()); + + if (G_UNLIKELY (!__nmtst_internal.rand)) { + guint32 seed; + const char *str; + + if ((str = g_getenv ("NMTST_SEED_RAND"))) { + gchar *s; + gint64 i; + + i = g_ascii_strtoll (str, &s, 0); + g_assert (s[0] == '\0' && i >= 0 && i < G_MAXUINT32); + + seed = i; + __nmtst_internal.rand = g_rand_new_with_seed (seed); + } else { + __nmtst_internal.rand = g_rand_new (); + + seed = g_rand_int (__nmtst_internal.rand); + g_rand_set_seed (__nmtst_internal.rand, seed); + } + __nmtst_internal.rand_seed = seed; + + g_print ("\nnmtst: initialize nmtst_get_rand() with NMTST_SEED_RAND=%u\n", seed); + } + return __nmtst_internal.rand; +} + +static inline guint32 +nmtst_get_rand_int (void) +{ + return g_rand_int (nmtst_get_rand ()); +} + +static inline gpointer +nmtst_rand_buf (GRand *rand, gpointer buffer, gsize buffer_length) +{ + guint32 v; + guint8 *b = buffer; + + if (!buffer_length) + return buffer; + + g_assert (buffer); + + if (!rand) + rand = nmtst_get_rand (); + + for (; buffer_length >= sizeof (guint32); buffer_length -= sizeof (guint32), b += sizeof (guint32)) { + v = g_rand_int (rand); + memcpy (b, &v, sizeof (guint32)); + } + if (buffer_length > 0) { + v = g_rand_int (rand); + do { + *(b++) = v & 0xFF; + v >>= 8; + } while (--buffer_length > 0); + } + return buffer; +} + +static inline void * +nmtst_rand_perm (GRand *rand, void *dst, const void *src, gsize elmt_size, gsize n_elmt) +{ + gsize i, j; + char *p_, *pj; + char *bu; + + g_assert (dst); + g_assert (elmt_size > 0); + g_assert (n_elmt < G_MAXINT32); + + if (n_elmt == 0) + return dst; + + if (src && dst != src) + memcpy (dst, src, elmt_size * n_elmt); + + if (!rand) + rand = nmtst_get_rand (); + + bu = g_slice_alloc (elmt_size); + + p_ = dst; + for (i = n_elmt; i > 1; i--) { + j = g_rand_int_range (rand, 0, i); + + if (j != 0) { + pj = &p_[j * elmt_size]; + + /* swap */ + memcpy (bu, p_, elmt_size); + memcpy (p_, pj, elmt_size); + memcpy (pj, bu, elmt_size); + } + p_ += elmt_size; + } + + g_slice_free1 (elmt_size, bu); + return dst; +} + +static inline GSList * +nmtst_rand_perm_gslist (GRand *rand, GSList *list) +{ + GSList *result; + guint l; + + if (!rand) + rand = nmtst_get_rand (); + + /* no need for an efficient implementation :) */ + + result = 0; + for (l = g_slist_length (list); l > 0; l--) { + GSList *tmp; + + tmp = g_slist_nth (list, g_rand_int (rand) % l); + g_assert (tmp); + + list = g_slist_remove_link (list, tmp); + result = g_slist_concat (tmp, result); + } + g_assert (!list); + return result; +} + +/*****************************************************************************/ + +static inline gboolean +_nmtst_main_loop_run_timeout (gpointer user_data) +{ + GMainLoop **p_loop = user_data; + + g_assert (p_loop); + g_assert (*p_loop); + + g_main_loop_quit (*p_loop); + *p_loop = NULL; + + return G_SOURCE_REMOVE; +} + +static inline gboolean +nmtst_main_loop_run (GMainLoop *loop, int timeout_ms) +{ + GSource *source = NULL; + guint id = 0; + GMainLoop *loopx = loop; + + if (timeout_ms > 0) { + source = g_timeout_source_new (timeout_ms); + g_source_set_callback (source, _nmtst_main_loop_run_timeout, &loopx, NULL); + id = g_source_attach (source, g_main_loop_get_context (loop)); + g_assert (id); + g_source_unref (source); + } + + g_main_loop_run (loop); + + /* if the timeout was reached, return FALSE. */ + return loopx != NULL; +} + +static inline void +_nmtst_main_loop_quit_on_notify (GObject *object, GParamSpec *pspec, gpointer user_data) +{ + GMainLoop *loop = user_data; + + g_assert (G_IS_OBJECT (object)); + g_assert (loop); + + g_main_loop_quit (loop); +} +#define nmtst_main_loop_quit_on_notify ((GCallback) _nmtst_main_loop_quit_on_notify) + +/*****************************************************************************/ + +static inline const char * +nmtst_get_sudo_cmd (void) +{ + g_assert (nmtst_initialized ()); + return __nmtst_internal.sudo_cmd; +} + +static inline void +nmtst_reexec_sudo (void) +{ + char *str; + char **argv; + int i; + int errsv; + + g_assert (nmtst_initialized ()); + g_assert (__nmtst_internal.orig_argv); + + if (!__nmtst_internal.sudo_cmd) + return; + + str = g_strjoinv (" ", __nmtst_internal.orig_argv); + __NMTST_LOG (g_message, ">> exec %s %s", __nmtst_internal.sudo_cmd, str); + + argv = g_new0 (char *, 1 + g_strv_length (__nmtst_internal.orig_argv) + 1); + argv[0] = __nmtst_internal.sudo_cmd; + for (i = 0; __nmtst_internal.orig_argv[i]; i++) + argv[i+1] = __nmtst_internal.orig_argv[i]; + + execvp (__nmtst_internal.sudo_cmd, argv); + + errsv = errno; + g_error (">> exec %s failed: %d - %s", __nmtst_internal.sudo_cmd, errsv, strerror (errsv)); +} + +/*****************************************************************************/ + +static inline gsize +nmtst_find_all_indexes (gpointer *elements, + gsize n_elements, + gpointer *needles, + gsize n_needles, + gboolean (*equal_fcn) (gpointer element, gpointer needle, gpointer user_data), + gpointer user_data, + gssize *out_idx) +{ + gsize i, j, k; + gsize found = 0; + + for (i = 0; i < n_needles; i++) { + gssize idx = -1; + + for (j = 0; j < n_elements; j++) { + + /* no duplicates */ + for (k = 0; k < i; k++) { + if (out_idx[k] == j) + goto next; + } + + if (equal_fcn (elements[j], needles[i], user_data)) { + idx = j; + break; + } +next: + ; + } + + out_idx[i] = idx; + if (idx >= 0) + found++; + } + + return found; +} + +/*****************************************************************************/ + +#define __define_nmtst_static(NUM,SIZE) \ +static inline const char * \ +nmtst_static_##SIZE##_##NUM (const char *str) \ +{ \ + gsize l; \ + static char buf[SIZE]; \ +\ + if (!str) \ + return NULL; \ + l = g_strlcpy (buf, str, sizeof (buf)); \ + g_assert (l < sizeof (buf)); \ + return buf; \ +} +__define_nmtst_static(01, 1024) +__define_nmtst_static(02, 1024) +__define_nmtst_static(03, 1024) +#undef __define_nmtst_static + +#define NMTST_UUID_INIT(uuid) \ + gs_free char *_nmtst_hidden_##uuid = nm_utils_uuid_generate (); \ + const char *const uuid = _nmtst_hidden_##uuid + +static inline const char * +nmtst_uuid_generate (void) +{ + static char u[37]; + gs_free char *m = NULL; + + m = nm_utils_uuid_generate (); + g_assert (m && strlen (m) == sizeof (u) - 1); + memcpy (u, m, sizeof (u)); + return u; +} + +#define NMTST_SWAP(x,y) \ + G_STMT_START { \ + char __nmtst_swap_temp[sizeof(x) == sizeof(y) ? (signed) sizeof(x) : -1]; \ + memcpy(__nmtst_swap_temp, &y, sizeof(x)); \ + memcpy(&y, &x, sizeof(x)); \ + memcpy(&x, __nmtst_swap_temp, sizeof(x)); \ + } G_STMT_END + +#define nmtst_assert_str_has_substr(str, substr) \ + G_STMT_START { \ + const char *__str = (str); \ + const char *__substr = (substr); \ + \ + g_assert (__str); \ + g_assert (__substr); \ + if (strstr (__str, __substr) == NULL) \ + g_error ("%s:%d: Expects \"%s\" but got \"%s\"", __FILE__, __LINE__, __substr, __str); \ + } G_STMT_END + +static inline guint32 +nmtst_inet4_from_string (const char *str) +{ + guint32 addr; + int success; + + if (!str) + return 0; + + success = inet_pton (AF_INET, str, &addr); + + g_assert (success == 1); + + return addr; +} + +static inline const struct in6_addr * +nmtst_inet6_from_string (const char *str) +{ + static struct in6_addr addr; + int success; + + if (!str) + addr = in6addr_any; + else { + success = inet_pton (AF_INET6, str, &addr); + g_assert (success == 1); + } + + return &addr; +} + +static inline void +_nmtst_assert_ip4_address (const char *file, int line, in_addr_t addr, const char *str_expected) +{ + if (nmtst_inet4_from_string (str_expected) != addr) { + char buf[100]; + + g_error ("%s:%d: Unexpected IPv4 address: expected %s, got %s", + file, line, str_expected ? str_expected : "0.0.0.0", + inet_ntop (AF_INET, &addr, buf, sizeof (buf))); + } +} +#define nmtst_assert_ip4_address(addr, str_expected) _nmtst_assert_ip4_address (__FILE__, __LINE__, addr, str_expected) + +static inline void +_nmtst_assert_ip6_address (const char *file, int line, const struct in6_addr *addr, const char *str_expected) +{ + struct in6_addr any = in6addr_any; + + if (!addr) + addr = &any; + + if (memcmp (nmtst_inet6_from_string (str_expected), addr, sizeof (*addr)) != 0) { + char buf[100]; + + g_error ("%s:%d: Unexpected IPv6 address: expected %s, got %s", + file, line, str_expected ? str_expected : "::", + inet_ntop (AF_INET6, addr, buf, sizeof (buf))); + } +} +#define nmtst_assert_ip6_address(addr, str_expected) _nmtst_assert_ip6_address (__FILE__, __LINE__, addr, str_expected) + +#define nmtst_spawn_sync(working_directory, standard_out, standard_err, assert_exit_status, ...) \ + __nmtst_spawn_sync (working_directory, standard_out, standard_err, assert_exit_status, ##__VA_ARGS__, NULL) +static inline gint +__nmtst_spawn_sync (const char *working_directory, char **standard_out, char **standard_err, int assert_exit_status, ...) G_GNUC_NULL_TERMINATED; +static inline gint +__nmtst_spawn_sync (const char *working_directory, char **standard_out, char **standard_err, int assert_exit_status, ...) +{ + gint exit_status = 0; + GError *error = NULL; + char *arg; + va_list va_args; + GPtrArray *argv = g_ptr_array_new (); + gboolean success; + + va_start (va_args, assert_exit_status); + while ((arg = va_arg (va_args, char *))) + g_ptr_array_add (argv, arg); + va_end (va_args); + + g_assert (argv->len >= 1); + g_ptr_array_add (argv, NULL); + + success = g_spawn_sync (working_directory, + (char**) argv->pdata, + NULL, + 0 /*G_SPAWN_DEFAULT*/, + NULL, + NULL, + standard_out, + standard_err, + &exit_status, + &error); + if (!success) + g_error ("nmtst_spawn_sync(%s): %s", ((char **) argv->pdata)[0], error->message); + g_assert (!error); + + g_assert (!standard_out || *standard_out); + g_assert (!standard_err || *standard_err); + + if (assert_exit_status != -1) { + /* exit status is a guint8 on success. Set @assert_exit_status to -1 + * not to check for the exit status. */ + g_assert (WIFEXITED (exit_status)); + g_assert_cmpint (WEXITSTATUS (exit_status), ==, assert_exit_status); + } + + g_ptr_array_free (argv, TRUE); + return exit_status; +} + +/*****************************************************************************/ + +static inline char * +nmtst_file_resolve_relative_path (const char *rel, const char *cwd) +{ + gs_free char *cwd_free = NULL; + + g_assert (rel && *rel); + + if (g_path_is_absolute (rel)) + return g_strdup (rel); + + if (!cwd) + cwd = cwd_free = g_get_current_dir (); + return g_build_filename (cwd, rel, NULL); +} + +static inline char * +nmtst_file_get_contents (const char *filename) +{ + GError *error = NULL; + gboolean success; + char *contents = NULL; + gsize len; + + success = g_file_get_contents (filename, &contents, &len, &error); + nmtst_assert_success (success && contents, error); + g_assert_cmpint (strlen (contents), ==, len); + return contents; +} + +#define nmtst_file_set_contents(filename, content) \ + G_STMT_START { \ + GError *_error = NULL; \ + gboolean _success; \ + \ + _success = g_file_set_contents ((filename), (content), -1, &_error); \ + nmtst_assert_success (_success, _error); \ + } G_STMT_END + +/*****************************************************************************/ + +static inline void +nmtst_file_unlink_if_exists (const char *name) +{ + int errsv; + + g_assert (name && name[0]); + + if (unlink (name) != 0) { + errsv = errno; + if (errsv != ENOENT) + g_error ("nmtst_file_unlink_if_exists(%s): failed with %s", name, strerror (errsv)); + } +} + +static inline void +nmtst_file_unlink (const char *name) +{ + int errsv; + + g_assert (name && name[0]); + + if (unlink (name) != 0) { + errsv = errno; + g_error ("nmtst_file_unlink(%s): failed with %s", name, strerror (errsv)); + } +} + +static inline void +_nmtst_auto_unlinkfile (char **p_name) +{ + if (*p_name) { + nmtst_file_unlink (*p_name); + nm_clear_g_free (p_name); + } +} + +#define nmtst_auto_unlinkfile nm_auto(_nmtst_auto_unlinkfile) + +/*****************************************************************************/ + +static inline void +_nmtst_assert_resolve_relative_path_equals (const char *f1, const char *f2, const char *file, int line) +{ + gs_free char *p1 = NULL, *p2 = NULL; + + p1 = nmtst_file_resolve_relative_path (f1, NULL); + p2 = nmtst_file_resolve_relative_path (f2, NULL); + g_assert (p1 && *p1); + + /* Fixme: later we might need to coalesce repeated '/', "./", and "../". + * For now, it's good enough. */ + if (g_strcmp0 (p1, p2) != 0) + g_error ("%s:%d : filenames don't match \"%s\" vs. \"%s\" // \"%s\" - \"%s\"", file, line, f1, f2, p1, p2); +} +#define nmtst_assert_resolve_relative_path_equals(f1, f2) _nmtst_assert_resolve_relative_path_equals (f1, f2, __FILE__, __LINE__); + +/*****************************************************************************/ + +#ifdef NM_SETTING_IP_CONFIG_H +static inline void +nmtst_setting_ip_config_add_address (NMSettingIPConfig *s_ip, + const char *address, + guint prefix) +{ + NMIPAddress *addr; + int family; + + g_assert (s_ip); + + if (nm_utils_ipaddr_valid (AF_INET, address)) + family = AF_INET; + else if (nm_utils_ipaddr_valid (AF_INET6, address)) + family = AF_INET6; + else + g_assert_not_reached (); + + addr = nm_ip_address_new (family, address, prefix, NULL); + g_assert (addr); + g_assert (nm_setting_ip_config_add_address (s_ip, addr)); + nm_ip_address_unref (addr); +} + +static inline void +nmtst_setting_ip_config_add_route (NMSettingIPConfig *s_ip, + const char *dest, + guint prefix, + const char *next_hop, + gint64 metric) +{ + NMIPRoute *route; + int family; + + g_assert (s_ip); + + if (nm_utils_ipaddr_valid (AF_INET, dest)) + family = AF_INET; + else if (nm_utils_ipaddr_valid (AF_INET6, dest)) + family = AF_INET6; + else + g_assert_not_reached (); + + route = nm_ip_route_new (family, dest, prefix, next_hop, metric, NULL); + g_assert (route); + g_assert (nm_setting_ip_config_add_route (s_ip, route)); + nm_ip_route_unref (route); +} + +static inline void +nmtst_assert_route_attribute_string (NMIPRoute *route, const char *name, const char *value) +{ + GVariant *variant; + + variant = nm_ip_route_get_attribute (route, name); + g_assert (variant); + g_assert (g_variant_is_of_type (variant, G_VARIANT_TYPE_STRING)); + g_assert_cmpstr (g_variant_get_string (variant, NULL), ==, value); +} + +static inline void +nmtst_assert_route_attribute_byte (NMIPRoute *route, const char *name, guchar value) +{ + GVariant *variant; + + variant = nm_ip_route_get_attribute (route, name); + g_assert (variant); + g_assert (g_variant_is_of_type (variant, G_VARIANT_TYPE_BYTE)); + g_assert_cmpint (g_variant_get_byte (variant), ==, value); +} + +static inline void +nmtst_assert_route_attribute_uint32 (NMIPRoute *route, const char *name, guint32 value) +{ + GVariant *variant; + + variant = nm_ip_route_get_attribute (route, name); + g_assert (variant); + g_assert (g_variant_is_of_type (variant, G_VARIANT_TYPE_UINT32)); + g_assert_cmpint (g_variant_get_uint32 (variant), ==, value); +} + +static inline void +nmtst_assert_route_attribute_boolean (NMIPRoute *route, const char *name, gboolean value) +{ + GVariant *variant; + + variant = nm_ip_route_get_attribute (route, name); + g_assert (variant); + g_assert (g_variant_is_of_type (variant, G_VARIANT_TYPE_BOOLEAN)); + g_assert_cmpint (g_variant_get_boolean (variant), ==, value); +} +#endif /* NM_SETTING_IP_CONFIG_H */ + +#if (defined(__NM_SIMPLE_CONNECTION_H__) && defined(__NM_SETTING_CONNECTION_H__)) || (defined(NM_CONNECTION_H)) + +static inline NMConnection * +nmtst_clone_connection (NMConnection *connection) +{ + g_assert (NM_IS_CONNECTION (connection)); + +#if defined(__NM_SIMPLE_CONNECTION_H__) + return nm_simple_connection_new_clone (connection); +#else + return nm_connection_duplicate (connection); +#endif +} + +static inline NMConnection * +nmtst_create_minimal_connection (const char *id, const char *uuid, const char *type, NMSettingConnection **out_s_con) +{ + NMConnection *con; + NMSetting *s_base = NULL; + NMSettingConnection *s_con; + gs_free char *uuid_free = NULL; + + g_assert (id); + + if (uuid) + g_assert (nm_utils_is_uuid (uuid)); + else + uuid = uuid_free = nm_utils_uuid_generate (); + + if (type) { + GType type_g; + +#if defined(__NM_SIMPLE_CONNECTION_H__) + type_g = nm_setting_lookup_type (type); +#else + type_g = nm_connection_lookup_setting_type (type); +#endif + + g_assert (type_g != G_TYPE_INVALID); + + s_base = g_object_new (type_g, NULL); + g_assert (NM_IS_SETTING (s_base)); + } + +#if defined(__NM_SIMPLE_CONNECTION_H__) + con = nm_simple_connection_new (); +#else + con = nm_connection_new (); +#endif + + s_con = NM_SETTING_CONNECTION (nm_setting_connection_new ()); + + g_object_set (s_con, + NM_SETTING_CONNECTION_ID, id, + NM_SETTING_CONNECTION_UUID, uuid, + NM_SETTING_CONNECTION_TYPE, type, + NULL); + nm_connection_add_setting (con, NM_SETTING (s_con)); + + if (s_base) + nm_connection_add_setting (con, s_base); + + if (out_s_con) + *out_s_con = s_con; + return con; +} + +static inline gboolean +_nmtst_connection_normalize_v (NMConnection *connection, va_list args) +{ + GError *error = NULL; + gboolean success; + gboolean was_modified = FALSE; + GHashTable *parameters = NULL; + const char *p_name; + + g_assert (NM_IS_CONNECTION (connection)); + + while ((p_name = va_arg (args, const char *))) { + if (!parameters) + parameters = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (parameters, (gpointer *) p_name, va_arg (args, gpointer)); + } + + success = nm_connection_normalize (connection, + parameters, + &was_modified, + &error); + g_assert_no_error (error); + g_assert (success); + + if (parameters) + g_hash_table_destroy (parameters); + + return was_modified; +} + +static inline gboolean +_nmtst_connection_normalize (NMConnection *connection, ...) +{ + gboolean was_modified; + va_list args; + + va_start (args, connection); + was_modified = _nmtst_connection_normalize_v (connection, args); + va_end (args); + + return was_modified; +} +#define nmtst_connection_normalize(connection, ...) \ + _nmtst_connection_normalize(connection, ##__VA_ARGS__, NULL) + +static inline NMConnection * +_nmtst_connection_duplicate_and_normalize (NMConnection *connection, ...) +{ + gboolean was_modified; + va_list args; + + connection = nmtst_clone_connection (connection); + + va_start (args, connection); + was_modified = _nmtst_connection_normalize_v (connection, args); + va_end (args); + + return connection; +} +#define nmtst_connection_duplicate_and_normalize(connection, ...) \ + _nmtst_connection_duplicate_and_normalize(connection, ##__VA_ARGS__, NULL) + +static inline void +nmtst_assert_connection_equals (NMConnection *a, gboolean normalize_a, NMConnection *b, gboolean normalize_b) +{ + gboolean compare; + gs_unref_object NMConnection *a2 = NULL; + gs_unref_object NMConnection *b2 = NULL; + GHashTable *out_settings = NULL; + + g_assert (NM_IS_CONNECTION (a)); + g_assert (NM_IS_CONNECTION (b)); + + if (normalize_a) + a = a2 = nmtst_connection_duplicate_and_normalize (a); + if (normalize_b) + b = b2 = nmtst_connection_duplicate_and_normalize (b); + + compare = nm_connection_diff (a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_settings); + if (!compare || out_settings) { + const char *name, *pname; + GHashTable *setting; + GHashTableIter iter, iter2; + + __NMTST_LOG (g_message, ">>> ASSERTION nmtst_assert_connection_equals() fails"); + if (out_settings) { + g_hash_table_iter_init (&iter, out_settings); + while (g_hash_table_iter_next (&iter, (gpointer *) &name, (gpointer *) &setting)) { + __NMTST_LOG (g_message, ">>> differences in setting '%s':", name); + + g_hash_table_iter_init (&iter2, setting); + while (g_hash_table_iter_next (&iter2, (gpointer *) &pname, NULL)) + __NMTST_LOG (g_message, ">>> differences in setting '%s.%s'", name, pname); + } + } + +#ifdef __NM_KEYFILE_INTERNAL_H__ + { + gs_unref_keyfile GKeyFile *kf_a = NULL, *kf_b = NULL; + gs_free char *str_a = NULL, *str_b = NULL; + + kf_a = nm_keyfile_write (a, NULL, NULL, NULL); + kf_b = nm_keyfile_write (b, NULL, NULL, NULL); + + if (kf_a) + str_a = g_key_file_to_data (kf_a, NULL, NULL); + if (kf_b) + str_b = g_key_file_to_data (kf_b, NULL, NULL); + + __NMTST_LOG (g_message, ">>> Connection A as kf (*WARNING: keyfile representation might not show the difference*):\n%s", str_a); + __NMTST_LOG (g_message, ">>> Connection B as kf (*WARNING: keyfile representation might not show the difference*):\n%s", str_b); + } +#endif + } + g_assert (compare); + g_assert (!out_settings); + + compare = nm_connection_compare (a, b, NM_SETTING_COMPARE_FLAG_EXACT); + g_assert (compare); +} + +static inline void +nmtst_assert_connection_verifies (NMConnection *con) +{ + /* assert that the connection does verify, it might be normaliziable or not */ + GError *error = NULL; + gboolean success; + + g_assert (NM_IS_CONNECTION (con)); + + success = nm_connection_verify (con, &error); + g_assert_no_error (error); + g_assert (success); +} + +static inline void +nmtst_assert_connection_verifies_without_normalization (NMConnection *con) +{ + /* assert that the connection verifies and does not need any normalization */ + GError *error = NULL; + gboolean success; + gboolean was_modified = FALSE; + gs_unref_object NMConnection *clone = NULL; + + clone = nmtst_clone_connection (con); + + nmtst_assert_connection_verifies (con); + + success = nm_connection_normalize (clone, NULL, &was_modified, &error); + g_assert_no_error (error); + g_assert (success); + nmtst_assert_connection_equals (con, FALSE, clone, FALSE); + g_assert (!was_modified); +} + +static inline void +nmtst_assert_connection_verifies_and_normalizable (NMConnection *con) +{ + /* assert that the connection does verify, but normalization still modifies it */ + GError *error = NULL; + gboolean success; + gboolean was_modified = FALSE; + gs_unref_object NMConnection *clone = NULL; + + clone = nmtst_clone_connection (con); + + nmtst_assert_connection_verifies (con); + + success = nm_connection_normalize (clone, NULL, &was_modified, &error); + g_assert_no_error (error); + g_assert (success); + g_assert (was_modified); + + /* again! */ + nmtst_assert_connection_verifies_without_normalization (clone); +} + +static inline void +nmtst_assert_connection_verifies_after_normalization (NMConnection *con, + GQuark expect_error_domain, + gint expect_error_code) +{ + /* assert that the connection does not verify, but normalization does fix it */ + GError *error = NULL; + gboolean success; + gboolean was_modified = FALSE; + gs_unref_object NMConnection *clone = NULL; + + clone = nmtst_clone_connection (con); + + success = nm_connection_verify (con, &error); + nmtst_assert_error (error, expect_error_domain, expect_error_code, NULL); + g_assert (!success); + g_clear_error (&error); + + success = nm_connection_normalize (clone, NULL, &was_modified, &error); + g_assert_no_error (error); + g_assert (success); + g_assert (was_modified); + + /* again! */ + nmtst_assert_connection_verifies_without_normalization (clone); +} + +static inline void +nmtst_assert_connection_unnormalizable (NMConnection *con, + GQuark expect_error_domain, + gint expect_error_code) +{ + /* assert that the connection does not verify, and it cannot be fixed by normalization */ + + GError *error = NULL; + gboolean success; + gboolean was_modified = FALSE; + gs_unref_object NMConnection *clone = NULL; + + clone = nmtst_clone_connection (con); + + success = nm_connection_verify (con, &error); + nmtst_assert_error (error, expect_error_domain, expect_error_code, NULL); + g_assert (!success); + g_clear_error (&error); + + success = nm_connection_normalize (clone, NULL, &was_modified, &error); + nmtst_assert_error (error, expect_error_domain, expect_error_code, NULL); + g_assert (!success); + g_assert (!was_modified); + nmtst_assert_connection_equals (con, FALSE, clone, FALSE); + g_clear_error (&error); +} + +static inline void +nmtst_assert_setting_verifies (NMSetting *setting) +{ + /* assert that the setting verifies without an error */ + + GError *error = NULL; + gboolean success; + + g_assert (NM_IS_SETTING (setting)); + + success = nm_setting_verify (setting, NULL, &error); + g_assert_no_error (error); + g_assert (success); +} + +static inline void +nmtst_assert_setting_verify_fails (NMSetting *setting, + GQuark expect_error_domain, + gint expect_error_code) +{ + /* assert that the setting verification fails */ + + GError *error = NULL; + gboolean success; + + g_assert (NM_IS_SETTING (setting)); + + success = nm_setting_verify (setting, NULL, &error); + nmtst_assert_error (error, expect_error_domain, expect_error_code, NULL); + g_assert (!success); + g_clear_error (&error); +} + +#endif + +#ifdef __NM_UTILS_H__ +static inline void +nmtst_assert_hwaddr_equals (gconstpointer hwaddr1, gssize hwaddr1_len, const char *expected, const char *file, int line) +{ + guint8 buf2[NM_UTILS_HWADDR_LEN_MAX]; + gsize hwaddr2_len = 1; + const char *p; + gboolean success; + + g_assert (hwaddr1_len > 0 && hwaddr1_len <= NM_UTILS_HWADDR_LEN_MAX); + + g_assert (expected); + for (p = expected; *p; p++) { + if (*p == ':' || *p == '-') + hwaddr2_len++; + } + g_assert (hwaddr2_len <= NM_UTILS_HWADDR_LEN_MAX); + g_assert (nm_utils_hwaddr_aton (expected, buf2, hwaddr2_len)); + + /* Manually check the entire hardware address instead of using + * nm_utils_hwaddr_matches() because that function doesn't compare + * entire InfiniBand addresses for various (legitimate) reasons. + */ + success = (hwaddr1_len == hwaddr2_len); + if (success) + success = !memcmp (hwaddr1, buf2, hwaddr1_len); + if (!success) { + g_error ("assert: %s:%d: hwaddr '%s' (%zd) expected, but got %s (%zd)", + file, line, expected, hwaddr2_len, nm_utils_hwaddr_ntoa (hwaddr1, hwaddr1_len), hwaddr1_len); + } +} +#define nmtst_assert_hwaddr_equals(hwaddr1, hwaddr1_len, expected) \ + nmtst_assert_hwaddr_equals (hwaddr1, hwaddr1_len, expected, __FILE__, __LINE__) +#endif + + +#if defined(__NM_SIMPLE_CONNECTION_H__) && defined(__NM_SETTING_CONNECTION_H__) && defined(__NM_KEYFILE_INTERNAL_H__) + +static inline NMConnection * +nmtst_create_connection_from_keyfile (const char *keyfile_str, const char *keyfile_name, const char *base_dir) +{ + GKeyFile *keyfile; + GError *error = NULL; + gboolean success; + NMConnection *con; + + g_assert (keyfile_str); + + keyfile = g_key_file_new (); + success = g_key_file_load_from_data (keyfile, keyfile_str, strlen (keyfile_str), G_KEY_FILE_NONE, &error); + g_assert_no_error (error); + g_assert (success); + + con = nm_keyfile_read (keyfile, keyfile_name, base_dir, NULL, NULL, &error); + g_assert_no_error (error); + g_assert (NM_IS_CONNECTION (con)); + + g_key_file_unref (keyfile); + + nmtst_connection_normalize (con); + + return con; +} + +#endif + +#ifdef __NM_CONNECTION_H__ + +static inline GVariant * +_nmtst_variant_new_vardict (int dummy, ...) +{ + GVariantBuilder builder; + va_list ap; + const char *name; + GVariant *variant; + + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + + va_start (ap, dummy); + while ((name = va_arg (ap, const char *))) { + variant = va_arg (ap, GVariant *); + g_variant_builder_add (&builder, "{sv}", name, variant); + } + va_end (ap); + + return g_variant_builder_end (&builder); +} +#define nmtst_variant_new_vardict(...) _nmtst_variant_new_vardict (0, __VA_ARGS__, NULL) + +#define nmtst_assert_variant_is_of_type(variant, type) \ + G_STMT_START { \ + GVariant *_variantx = (variant); \ + \ + g_assert (_variantx); \ + g_assert (g_variant_is_of_type (_variantx, (type))); \ + } G_STMT_END + +#define nmtst_assert_variant_uint32(variant, val) \ + G_STMT_START { \ + GVariant *_variant = (variant); \ + \ + nmtst_assert_variant_is_of_type (_variant, G_VARIANT_TYPE_UINT32); \ + g_assert_cmpint (g_variant_get_uint32 (_variant), ==, (val)); \ + } G_STMT_END + +#define nmtst_assert_variant_string(variant, str) \ + G_STMT_START { \ + gsize _l; \ + GVariant *_variant = (variant); \ + const char *_str = (str); \ + \ + nmtst_assert_variant_is_of_type (_variant, G_VARIANT_TYPE_STRING); \ + g_assert (_str); \ + g_assert_cmpstr (g_variant_get_string (_variant, &_l), ==, _str); \ + g_assert_cmpint (_l, ==, strlen (_str)); \ + } G_STMT_END + +typedef enum { + NMTST_VARIANT_EDITOR_CONNECTION, + NMTST_VARIANT_EDITOR_SETTING, + NMTST_VARIANT_EDITOR_PROPERTY +} NmtstVariantEditorPhase; + +#define NMTST_VARIANT_EDITOR(__connection_variant, __code) \ + G_STMT_START { \ + GVariantIter __connection_iter, *__setting_iter; \ + GVariantBuilder __connection_builder, __setting_builder; \ + const char *__cur_setting_name, *__cur_property_name; \ + GVariant *__property_val; \ + NmtstVariantEditorPhase __phase; \ + \ + g_variant_builder_init (&__connection_builder, NM_VARIANT_TYPE_CONNECTION); \ + g_variant_iter_init (&__connection_iter, __connection_variant); \ + \ + __phase = NMTST_VARIANT_EDITOR_CONNECTION; \ + __cur_setting_name = NULL; \ + __cur_property_name = NULL; \ + __code; \ + while (g_variant_iter_next (&__connection_iter, "{&sa{sv}}", &__cur_setting_name, &__setting_iter)) { \ + g_variant_builder_init (&__setting_builder, NM_VARIANT_TYPE_SETTING); \ + __phase = NMTST_VARIANT_EDITOR_SETTING; \ + __cur_property_name = NULL; \ + __code; \ + \ + while ( __cur_setting_name \ + && g_variant_iter_next (__setting_iter, "{&sv}", &__cur_property_name, &__property_val)) { \ + __phase = NMTST_VARIANT_EDITOR_PROPERTY; \ + __code; \ + \ + if (__cur_property_name) { \ + g_variant_builder_add (&__setting_builder, "{sv}", \ + __cur_property_name, \ + __property_val); \ + } \ + g_variant_unref (__property_val); \ + } \ + \ + if (__cur_setting_name) \ + g_variant_builder_add (&__connection_builder, "{sa{sv}}", __cur_setting_name, &__setting_builder); \ + else \ + g_variant_builder_clear (&__setting_builder); \ + g_variant_iter_free (__setting_iter); \ + } \ + \ + g_variant_unref (__connection_variant); \ + \ + __connection_variant = g_variant_builder_end (&__connection_builder); \ + } G_STMT_END; + +#define NMTST_VARIANT_ADD_SETTING(__setting_name, __setting_variant) \ + G_STMT_START { \ + if (__phase == NMTST_VARIANT_EDITOR_CONNECTION) \ + g_variant_builder_add (&__connection_builder, "{s@a{sv}}", __setting_name, __setting_variant); \ + } G_STMT_END + +#define NMTST_VARIANT_DROP_SETTING(__setting_name) \ + G_STMT_START { \ + if (__phase == NMTST_VARIANT_EDITOR_SETTING && __cur_setting_name) { \ + if (!strcmp (__cur_setting_name, __setting_name)) \ + __cur_setting_name = NULL; \ + } \ + } G_STMT_END + +#define NMTST_VARIANT_ADD_PROPERTY(__setting_name, __property_name, __format_string, __value) \ + G_STMT_START { \ + if (__phase == NMTST_VARIANT_EDITOR_SETTING) { \ + if (!strcmp (__cur_setting_name, __setting_name)) { \ + g_variant_builder_add (&__setting_builder, "{sv}", __property_name, \ + g_variant_new (__format_string, __value)); \ + } \ + } \ + } G_STMT_END + +#define NMTST_VARIANT_DROP_PROPERTY(__setting_name, __property_name) \ + G_STMT_START { \ + if (__phase == NMTST_VARIANT_EDITOR_PROPERTY && __cur_property_name) { \ + if ( !strcmp (__cur_setting_name, __setting_name) \ + && !strcmp (__cur_property_name, __property_name)) \ + __cur_property_name = NULL; \ + } \ + } G_STMT_END + +#define NMTST_VARIANT_CHANGE_PROPERTY(__setting_name, __property_name, __format_string, __value) \ + G_STMT_START { \ + NMTST_VARIANT_DROP_PROPERTY (__setting_name, __property_name); \ + NMTST_VARIANT_ADD_PROPERTY (__setting_name, __property_name, __format_string, __value); \ + } G_STMT_END + +#endif /* __NM_CONNECTION_H__ */ + +#endif /* __NM_TEST_UTILS_H__ */ diff --git a/shared/nm-utils/nm-vpn-plugin-macros.h b/shared/nm-utils/nm-vpn-plugin-macros.h new file mode 100644 index 0000000..acc549f --- /dev/null +++ b/shared/nm-utils/nm-vpn-plugin-macros.h @@ -0,0 +1,93 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright 2016 Red Hat, Inc. + */ + +#ifndef __NM_VPN_PLUGIN_MACROS_H__ +#define __NM_VPN_PLUGIN_MACROS_H__ + +#include + +static inline int +nm_utils_syslog_coerce_from_nm (int syslog_level) +{ + /* NetworkManager uses internally NMLogLevel levels. When spawning + * the VPN plugin, it maps those levels to syslog levels as follows: + * + * LOGL_INFO = LOG_NOTICE, + * LOGL_DEBUG = LOG_INFO, + * LOGL_TRACE = LOG_DEBUG, + * + * However, when actually printing to syslog, we don't want to print messages + * with LOGL_INFO level as LOG_NOTICE, because they are *not* to be highlighted. + * + * In other words: NetworkManager has 3 levels that should not require highlighting: + * LOGL_INFO, LOGL_DEBUG, LOGL_TRACE. syslog on the other hand has only LOG_INFO and LOG_DEBUG. + * + * So, coerce those values before printing to syslog. When you receive the syslog_level + * from NetworkManager, instead of calling + * syslog(syslog_level, ...) + * you should call + * syslog(nm_utils_syslog_coerce_from_nm(syslog_level), ...) + */ + switch (syslog_level) { + case LOG_INFO: + return LOG_DEBUG; + case LOG_NOTICE: + return LOG_INFO; + default: + return syslog_level; + } +} + +static inline const char * +nm_utils_syslog_to_str (int syslog_level) +{ + /* Maps the levels the same way as NetworkManager's nm-logging.c does */ + if (syslog_level >= LOG_DEBUG) + return ""; + if (syslog_level >= LOG_INFO) + return ""; + if (syslog_level >= LOG_NOTICE) + return ""; + if (syslog_level >= LOG_WARNING) + return ""; + return ""; +} + +/*****************************************************************************/ + +/* possibly missing defines from newer libnm API. */ + +#ifndef NM_VPN_PLUGIN_CONFIG_PROXY_PAC +#define NM_VPN_PLUGIN_CONFIG_PROXY_PAC "pac" +#endif + +#ifndef NM_VPN_PLUGIN_IP4_CONFIG_PRESERVE_ROUTES +#define NM_VPN_PLUGIN_IP4_CONFIG_PRESERVE_ROUTES "preserve-routes" +#endif + +#ifndef NM_VPN_PLUGIN_IP6_CONFIG_PRESERVE_ROUTES +#define NM_VPN_PLUGIN_IP6_CONFIG_PRESERVE_ROUTES "preserve-routes" +#endif + +/*****************************************************************************/ + +#endif /* __NM_VPN_PLUGIN_MACROS_H__ */ + diff --git a/shared/nm-utils/nm-vpn-plugin-utils.c b/shared/nm-utils/nm-vpn-plugin-utils.c new file mode 100644 index 0000000..772aa39 --- /dev/null +++ b/shared/nm-utils/nm-vpn-plugin-utils.c @@ -0,0 +1,130 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright 2016 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "nm-vpn-plugin-utils.h" + +#include + +/*****************************************************************************/ + +NMVpnEditor * +nm_vpn_plugin_utils_load_editor (const char *module_name, + const char *factory_name, + NMVpnPluginUtilsEditorFactory editor_factory, + NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + gpointer user_data, + GError **error) + +{ + static struct { + gpointer factory; + void *dl_module; + char *module_name; + char *factory_name; + } cached = { 0 }; + NMVpnEditor *editor; + + g_return_val_if_fail (module_name && g_path_is_absolute (module_name), NULL); + g_return_val_if_fail (factory_name && factory_name[0], NULL); + g_return_val_if_fail (editor_factory, NULL); + g_return_val_if_fail (NM_IS_VPN_EDITOR_PLUGIN (editor_plugin), NULL); + g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL); + g_return_val_if_fail (!error || !*error, NULL); + + /* we really expect this function to be called with unchanging @module_name + * and @factory_name. And we only want to load the module once, hence it would + * be more complicated to accept changing @module_name/@factory_name arguments. + * + * The reason for only loading once is that due to glib types, we cannot create a + * certain type-name more then once, so loading the same module or another version + * of the same module will fail horribly as both try to create a GType with the same + * name. + * + * Only support loading once, any future calls will reuse the handle. To simplify + * that, we enforce that the @factory_name and @module_name is the same. */ + if (cached.factory) { + g_return_val_if_fail (cached.dl_module, NULL); + g_return_val_if_fail (cached.factory_name && nm_streq0 (cached.factory_name, factory_name), NULL); + g_return_val_if_fail (cached.module_name && nm_streq0 (cached.module_name, module_name), NULL); + } else { + gpointer factory; + void *dl_module; + + dl_module = dlopen (module_name, RTLD_LAZY | RTLD_LOCAL); + if (!dl_module) { + if (!g_file_test (module_name, G_FILE_TEST_EXISTS)) { + g_set_error (error, + G_FILE_ERROR, + G_FILE_ERROR_NOENT, + _("missing plugin file \"%s\""), module_name); + return NULL; + } + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_FAILED, + _("cannot load editor plugin: %s"), dlerror ()); + return NULL; + } + + factory = dlsym (dl_module, factory_name); + if (!factory) { + g_set_error (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_FAILED, + _("cannot load factory %s from plugin: %s"), + factory_name, dlerror ()); + dlclose (dl_module); + return NULL; + } + + /* we cannot ever unload the module because it creates glib types, which + * cannot be unregistered. + * + * Thus we just leak the dl_module handle indefinitely. */ + cached.factory = factory; + cached.dl_module = dl_module; + cached.module_name = g_strdup (module_name); + cached.factory_name = g_strdup (factory_name); + } + + editor = editor_factory (cached.factory, + editor_plugin, + connection, + user_data, + error); + if (!editor) { + if (error && !*error ) { + g_set_error_literal (error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_FAILED, + _("unknown error creating editor instance")); + g_return_val_if_reached (NULL); + } + return NULL; + } + + g_return_val_if_fail (NM_IS_VPN_EDITOR (editor), NULL); + return editor; +} + diff --git a/shared/nm-utils/nm-vpn-plugin-utils.h b/shared/nm-utils/nm-vpn-plugin-utils.h new file mode 100644 index 0000000..f3928d1 --- /dev/null +++ b/shared/nm-utils/nm-vpn-plugin-utils.h @@ -0,0 +1,42 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + * Copyright 2016 Red Hat, Inc. + */ + +#ifndef __NM_VPN_PLUGIN_UTILS_H__ +#define __NM_VPN_PLUGIN_UTILS_H__ + +#include + +typedef NMVpnEditor *(NMVpnPluginUtilsEditorFactory) (gpointer factory, + NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + gpointer user_data, + GError **error); + +NMVpnEditor *nm_vpn_plugin_utils_load_editor (const char *module_name, + const char *factory_name, + NMVpnPluginUtilsEditorFactory editor_factory, + NMVpnEditorPlugin *editor_plugin, + NMConnection *connection, + gpointer user_data, + GError **error); + +#endif /* __NM_VPN_PLUGIN_UTILS_H__ */ + diff --git a/shared/utils.c b/shared/utils.c new file mode 100644 index 0000000..aa2565e --- /dev/null +++ b/shared/utils.c @@ -0,0 +1,250 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * Dan Williams + * + * 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. + * + * (C) Copyright 2010 Red Hat, Inc. + */ + +#include "nm-default.h" + +#include "utils.h" + +#include +#include +#include + +#include "nm-utils/nm-shared-utils.h" + +gboolean +is_pkcs12 (const char *filepath) +{ + NMSetting8021xCKFormat ck_format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN; + NMSetting8021x *s_8021x; + + if (!filepath || !strlen (filepath)) + return FALSE; + + if (!g_file_test (filepath, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) + return FALSE; + + s_8021x = (NMSetting8021x *) nm_setting_802_1x_new (); + g_return_val_if_fail (s_8021x != NULL, FALSE); + + nm_setting_802_1x_set_private_key (s_8021x, + filepath, + NULL, + NM_SETTING_802_1X_CK_SCHEME_PATH, + &ck_format, + NULL); + g_object_unref (s_8021x); + + return (ck_format == NM_SETTING_802_1X_CK_FORMAT_PKCS12); +} + +#define PROC_TYPE_TAG "Proc-Type: 4,ENCRYPTED" +#define PKCS8_TAG "-----BEGIN ENCRYPTED PRIVATE KEY-----" + +/** Checks if a file appears to be an encrypted private key. + * @param filename the path to the file + * @return returns true if the key is encrypted, false otherwise + */ +gboolean +is_encrypted (const char *filename) +{ + GIOChannel *pem_chan; + char *str = NULL; + gboolean encrypted = FALSE; + + if (!filename || !strlen (filename)) + return FALSE; + + if (is_pkcs12 (filename)) + return TRUE; + + pem_chan = g_io_channel_new_file (filename, "r", NULL); + if (!pem_chan) + return FALSE; + + while (g_io_channel_read_line (pem_chan, &str, NULL, NULL, NULL) != G_IO_STATUS_EOF) { + if (str) { + if (g_str_has_prefix (str, PROC_TYPE_TAG) || g_str_has_prefix (str, PKCS8_TAG)) { + encrypted = TRUE; + break; + } + g_free (str); + } + } + + g_io_channel_shutdown (pem_chan, FALSE, NULL); + g_io_channel_unref (pem_chan); + return encrypted; +} + +static gboolean +_is_inet6_addr (const char *str, gboolean with_square_brackets) +{ + struct in6_addr a; + gsize l; + + if ( with_square_brackets + && str[0] == '[') { + l = strlen (str); + if (str[l - 1] == ']') { + gs_free char *s = g_strndup (&str[1], l - 2); + + return inet_pton (AF_INET6, s, &a) == 1; + } + } + return inet_pton (AF_INET6, str, &a) == 1; +} + +/** + * nmovpn_remote_parse: + * @str: the input string to be split. It is modified inplace. + * @out_buf: an allocated string, to which the other arguments + * point to. Must be freeded by caller. + * @out_host: pointer to the host out argument. + * @out_port: pointer to the port out argument. + * @out_proto: pointer to the proto out argument. + * @error: + * + * Splits @str in three parts host, port and proto. + * + * Returns: -1 on success or index in @str of first invalid character. + * Note that the error index can be at strlen(str), if some data is missing. + **/ +gssize +nmovpn_remote_parse (const char *str, + char **out_buf, + const char **out_host, + const char **out_port, + const char **out_proto, + GError **error) +{ + gs_free char *str_copy = NULL; + char *t; + char *host = NULL; + char *port = NULL; + char *proto = NULL; + gssize idx_fail; + + g_return_val_if_fail (str, 0); + if (!out_buf) { + /* one can omit @out_buf only if also no other out-arguments + * are requested. */ + if (out_host || out_port || out_proto) + g_return_val_if_reached (0); + } + g_return_val_if_fail (!error || !*error, 0); + + t = strchr (str, ' '); + if (!t) + t = strchr (str, ','); + if (t) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("invalid delimiter character '%c'"), t[0]); + idx_fail = t - str; + goto out_fail; + } + + if (!g_utf8_validate (str, -1, (const char **) &t)) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("invalid non-utf-8 character")); + idx_fail = t - str; + goto out_fail; + } + + str_copy = g_strdup (str); + + /* we already checked that there is no space above. + * Strip tabs nonetheless. */ + host = nm_str_skip_leading_spaces (str_copy); + g_strchomp (host); + + t = strrchr (host, ':'); + if ( t + && !_is_inet6_addr (host, TRUE)) { + t[0] = '\0'; + port = &t[1]; + t = strrchr (host, ':'); + if ( t + && !_is_inet6_addr (host, TRUE)) { + t[0] = '\0'; + proto = port; + port = &t[1]; + } + } + + if (!host[0]) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("empty host")); + idx_fail = host - str; + goto out_fail; + } + if (port) { + if (!port[0]) { + /* allow empty port like "host::udp". */ + port = NULL; + } else if (_nm_utils_ascii_str_to_int64 (port, 10, 1, 0xFFFF, 0) == 0) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("invalid port")); + idx_fail = port - str; + goto out_fail; + } + } + if (proto) { + if (!proto[0]) { + /* allow empty proto, so that host can contain ':'. */ + proto = NULL; + } else if (!NM_IN_STRSET (proto, NMOVPN_PROTCOL_TYPES)) { + g_set_error (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN, + _("invalid protocol")); + idx_fail = proto - str; + goto out_fail; + } + } + + if (out_buf) { + *out_buf = g_steal_pointer (&str_copy); + if ( host[0] == '[' + && _is_inet6_addr (host, TRUE) + && !_is_inet6_addr (host, FALSE)) { + gsize l; + + host++; + l = strlen (host); + nm_assert (l > 0 && host[l - 1] == ']'); + host[l - 1] = '\0'; + nm_assert (_is_inet6_addr (host, FALSE)); + } + NM_SET_OUT (out_host, host); + NM_SET_OUT (out_port, port); + NM_SET_OUT (out_proto, proto); + } + return -1; + +out_fail: + if (out_buf) { + *out_buf = NULL; + NM_SET_OUT (out_host, NULL); + NM_SET_OUT (out_port, NULL); + NM_SET_OUT (out_proto, NULL); + } + return idx_fail; +} + +/*****************************************************************************/ diff --git a/shared/utils.h b/shared/utils.h new file mode 100644 index 0000000..353ddef --- /dev/null +++ b/shared/utils.h @@ -0,0 +1,101 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* + * Dan Williams + * + * 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. + * + * (C) Copyright 2010 Red Hat, Inc. + */ + +#ifndef UTILS_H +#define UTILS_H + +#define NMV_OVPN_TAG_AUTH "auth" +#define NMV_OVPN_TAG_AUTH_NOCACHE "auth-nocache" +#define NMV_OVPN_TAG_AUTH_USER_PASS "auth-user-pass" +#define NMV_OVPN_TAG_CA "ca" +#define NMV_OVPN_TAG_CERT "cert" +#define NMV_OVPN_TAG_CIPHER "cipher" +#define NMV_OVPN_TAG_CLIENT "client" +#define NMV_OVPN_TAG_COMP_LZO "comp-lzo" +#define NMV_OVPN_TAG_DEV "dev" +#define NMV_OVPN_TAG_DEV_TYPE "dev-type" +#define NMV_OVPN_TAG_FLOAT "float" +#define NMV_OVPN_TAG_FRAGMENT "fragment" +#define NMV_OVPN_TAG_GROUP "group" +#define NMV_OVPN_TAG_HTTP_PROXY "http-proxy" +#define NMV_OVPN_TAG_HTTP_PROXY_RETRY "http-proxy-retry" +#define NMV_OVPN_TAG_IFCONFIG "ifconfig" +#define NMV_OVPN_TAG_KEEPALIVE "keepalive" +#define NMV_OVPN_TAG_KEY_DIRECTION "key-direction" +#define NMV_OVPN_TAG_KEY "key" +#define NMV_OVPN_TAG_KEYSIZE "keysize" +#define NMV_OVPN_TAG_MAX_ROUTES "max-routes" +#define NMV_OVPN_TAG_MSSFIX "mssfix" +#define NMV_OVPN_TAG_MTU_DISC "mtu-disc" +#define NMV_OVPN_TAG_NOBIND "nobind" +#define NMV_OVPN_TAG_NS_CERT_TYPE "ns-cert-type" +#define NMV_OVPN_TAG_PERSIST_KEY "persist-key" +#define NMV_OVPN_TAG_PERSIST_TUN "persist-tun" +#define NMV_OVPN_TAG_PING_EXIT "ping-exit" +#define NMV_OVPN_TAG_PING "ping" +#define NMV_OVPN_TAG_PING_RESTART "ping-restart" +#define NMV_OVPN_TAG_PKCS12 "pkcs12" +#define NMV_OVPN_TAG_PORT "port" +#define NMV_OVPN_TAG_PROTO "proto" +#define NMV_OVPN_TAG_REMOTE_CERT_TLS "remote-cert-tls" +#define NMV_OVPN_TAG_REMOTE_RANDOM "remote-random" +#define NMV_OVPN_TAG_REMOTE "remote" +#define NMV_OVPN_TAG_RENEG_SEC "reneg-sec" +#define NMV_OVPN_TAG_ROUTE "route" +#define NMV_OVPN_TAG_RPORT "rport" +#define NMV_OVPN_TAG_SCRIPT_SECURITY "script-security" +#define NMV_OVPN_TAG_SECRET "secret" +#define NMV_OVPN_TAG_SOCKS_PROXY_RETRY "socks-proxy-retry" +#define NMV_OVPN_TAG_SOCKS_PROXY "socks-proxy" +#define NMV_OVPN_TAG_TLS_AUTH "tls-auth" +#define NMV_OVPN_TAG_TLS_CIPHER "tls-cipher" +#define NMV_OVPN_TAG_TLS_CLIENT "tls-client" +#define NMV_OVPN_TAG_TLS_CRYPT "tls-crypt" +#define NMV_OVPN_TAG_TLS_REMOTE "tls-remote" +#define NMV_OVPN_TAG_TOPOLOGY "topology" +#define NMV_OVPN_TAG_TUN_IPV6 "tun-ipv6" +#define NMV_OVPN_TAG_TUN_MTU "tun-mtu" +#define NMV_OVPN_TAG_USER "user" +#define NMV_OVPN_TAG_VERIFY_X509_NAME "verify-x509-name" + +gboolean is_pkcs12 (const char *filepath); + +gboolean is_encrypted (const char *filename); + +#define NMOVPN_PROTCOL_TYPES \ + "udp", \ + "udp4", \ + "udp6", \ + "tcp", \ + "tcp4", \ + "tcp6", \ + "tcp-client", \ + "tcp4-client", \ + "tcp6-client" + +gssize nmovpn_remote_parse (const char *str, + char **out_buf, + const char **out_host, + const char **out_port, + const char **out_proto, + GError **error); + +#endif /* UTILS_H */ diff --git a/src/nm-openvpn-service-openvpn-helper.c b/src/nm-openvpn-service-openvpn-helper.c new file mode 100644 index 0000000..d6c3302 --- /dev/null +++ b/src/nm-openvpn-service-openvpn-helper.c @@ -0,0 +1,777 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* nm-openvpn-service-openvpn-helper - helper called after OpenVPN established + * a connection, uses DBUS to send information back to nm-openvpn-service + * + * Tim Niemueller [www.niemueller.de] + * Based on work by Dan Williams + * + * 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. + * + * (C) Copyright 2005 Red Hat, Inc. + * (C) Copyright 2005 Tim Niemueller + * + * $Id: nm-openvpn-service-openvpn-helper.c 4170 2008-10-11 14:44:45Z dcbw $ + */ + +#include "nm-default.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nm-utils/nm-shared-utils.h" +#include "nm-utils/nm-vpn-plugin-macros.h" + +extern char **environ; + +static struct { + int log_level; + const char *log_prefix_token; +} gl; + +/*****************************************************************************/ + +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (gl.log_level >= (level)) { \ + g_print ("nm-openvpn[%s]: %-7s [helper-%ld] " _NM_UTILS_MACRO_FIRST (__VA_ARGS__) "\n", \ + gl.log_prefix_token ?: "???", \ + nm_utils_syslog_to_str (level), \ + (long) getpid () \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +static inline gboolean +_LOGD_enabled (void) +{ + return gl.log_level >= LOG_INFO; +} + +#define _LOGD(...) _NMLOG(LOG_INFO, __VA_ARGS__) +#define _LOGI(...) _NMLOG(LOG_NOTICE, __VA_ARGS__) +#define _LOGW(...) _NMLOG(LOG_WARNING, __VA_ARGS__) + +/*****************************************************************************/ + +static void +helper_failed (GDBusProxy *proxy, const char *reason) +{ + GError *err = NULL; + + _LOGW ("nm-openvpn-service-openvpn-helper did not receive a valid %s from openvpn", reason); + + if (!g_dbus_proxy_call_sync (proxy, "SetFailure", + g_variant_new ("(s)", reason), + G_DBUS_CALL_FLAGS_NONE, -1, + NULL, + &err)) { + _LOGW ("Could not send failure information: %s", err->message); + g_error_free (err); + } + + exit (1); +} + +static void +send_config (GDBusProxy *proxy, GVariant *config, + GVariant *ip4config, GVariant *ip6config) +{ + GError *err = NULL; + + if (!g_dbus_proxy_call_sync (proxy, "SetConfig", + g_variant_new ("(*)", config), + G_DBUS_CALL_FLAGS_NONE, -1, + NULL, + &err)) { + _LOGW ("Could not send configuration information: %s", err->message); + g_error_free (err); + err = NULL; + } + + if (ip4config) { + if (!g_dbus_proxy_call_sync (proxy, "SetIp4Config", + g_variant_new ("(*)", ip4config), + G_DBUS_CALL_FLAGS_NONE, -1, + NULL, + &err)) { + _LOGW ("Could not send IPv4 configuration information: %s", err->message); + g_error_free (err); + err = NULL; + } + } + + if (ip6config) { + if (!g_dbus_proxy_call_sync (proxy, "SetIp6Config", + g_variant_new ("(*)", ip6config), + G_DBUS_CALL_FLAGS_NONE, -1, + NULL, + &err)) { + _LOGW ("Could not send IPv6 configuration information: %s", err->message); + g_error_free (err); + err = NULL; + } + } +} + +static GVariant * +str_to_gvariant (const char *str, gboolean try_convert) +{ + /* Empty */ + if (!str || strlen (str) < 1) + return NULL; + + if (!g_utf8_validate (str, -1, NULL)) { + if (try_convert && !(str = g_convert (str, -1, "ISO-8859-1", "UTF-8", NULL, NULL, NULL))) + str = g_convert (str, -1, "C", "UTF-8", NULL, NULL, NULL); + + if (!str) + /* Invalid */ + return NULL; + } + + return g_variant_new_string (str); +} + +static GVariant * +addr4_to_gvariant (const char *str) +{ + struct in_addr temp_addr; + + /* Empty */ + if (!str || strlen (str) < 1) + return NULL; + + if (inet_pton (AF_INET, str, &temp_addr) <= 0) + return NULL; + + return g_variant_new_uint32 (temp_addr.s_addr); +} + +static GVariant * +addr6_to_gvariant (const char *str) +{ + struct in6_addr temp_addr; + GVariantBuilder builder; + int i; + + /* Empty */ + if (!str || strlen (str) < 1) + return NULL; + + if (inet_pton (AF_INET6, str, &temp_addr) <= 0) + return NULL; + + g_variant_builder_init (&builder, G_VARIANT_TYPE ("ay")); + for (i = 0; i < sizeof (temp_addr); i++) + g_variant_builder_add (&builder, "y", ((guint8 *) &temp_addr)[i]); + return g_variant_builder_end (&builder); +} + +static void +parse_addr_list (GPtrArray *array4, GPtrArray *array6, const char *str) +{ + char **split; + int i; + GVariant *variant; + + /* Empty */ + if (!str || strlen (str) < 1) + return; + + split = g_strsplit (str, " ", -1); + for (i = 0; split[i]; i++) { + if (array4 && (variant = addr4_to_gvariant (split[i])) != NULL) + g_ptr_array_add (array4, variant); + else if (array6 && (variant = addr6_to_gvariant (split[i])) != NULL) + g_ptr_array_add (array6, variant); + } + + g_strfreev (split); + + return; +} + +static inline gboolean +is_domain_valid (const char *str) +{ + return (str && (strlen(str) >= 1) && (strlen(str) <= 255)); +} + +static GVariant * +get_ip4_routes (void) +{ + GVariantBuilder builder; + char *tmp; + gboolean has_any = FALSE; + guint i; + + g_variant_builder_init (&builder, G_VARIANT_TYPE ("aau")); + + for (i = 1;; i++) { + GVariantBuilder array; + char key_name[255]; + in_addr_t network; + in_addr_t netmask; + in_addr_t gateway = 0; + guint32 metric; + + nm_sprintf_buf (key_name, "route_network_%u", i); + tmp = getenv (key_name); + if (!tmp || !tmp[0]) + break; + + if (inet_pton (AF_INET, tmp, &network) != 1) { + _LOGW ("Ignoring invalid static route address %s = \"%s\"", key_name, tmp); + continue; + } + + nm_sprintf_buf (key_name, "route_netmask_%u", i); + tmp = getenv (key_name); + if ( !tmp + || inet_pton (AF_INET, tmp, &netmask) != 1) { + _LOGW ("Ignoring invalid static route netmask %s = %s%s%s", key_name, NM_PRINT_FMT_QUOTE_STRING (tmp)); + continue; + } + + nm_sprintf_buf (key_name, "route_gateway_%u", i); + tmp = getenv (key_name); + /* gateway can be missing */ + if ( tmp + && inet_pton (AF_INET, tmp, &gateway) != 1) { + _LOGW ("Ignoring invalid static route gateway %s = \"%s\"", key_name, tmp); + continue; + } + + nm_sprintf_buf (key_name, "route_metric_%u", i); + tmp = getenv (key_name); + /* metric can be missing */ + if (tmp && tmp[0]) { + metric = _nm_utils_ascii_str_to_int64 (tmp, 10, 0, G_MAXUINT32, 0); + if (errno) { + _LOGW ("Ignoring invalid static route metric %s = \"%s\"", key_name, tmp); + continue; + } + } else + metric = 0; + + g_variant_builder_init (&array, G_VARIANT_TYPE ("au")); + g_variant_builder_add_value (&array, g_variant_new_uint32 (network)); + g_variant_builder_add_value (&array, g_variant_new_uint32 (nm_utils_ip4_netmask_to_prefix (netmask))); + g_variant_builder_add_value (&array, g_variant_new_uint32 (gateway)); + g_variant_builder_add_value (&array, g_variant_new_uint32 (metric)); + g_variant_builder_add_value (&builder, g_variant_builder_end (&array)); + has_any = TRUE; + } + + if (!has_any) { + g_variant_builder_clear (&builder); + return NULL; + } + + return g_variant_builder_end (&builder); +} + +static GVariant * +get_ip6_routes (void) +{ + gs_unref_ptrarray GPtrArray *routes = NULL; + guint i; + + routes = g_ptr_array_new_full (10, (GDestroyNotify) nm_ip_route_unref); + + for (i = 1;; i++) { + NMIPRoute *route; + GError *error = NULL; + gs_free char *dst = NULL; + char key_name[255]; + int prefix; + const char *tmp; + + nm_sprintf_buf (key_name, "route_ipv6_network_%u", i); + tmp = getenv (key_name); + if (!tmp || !tmp[0]) + break; + + if ( !nm_utils_parse_inaddr_prefix (tmp, AF_INET6, &dst, &prefix) + || prefix == -1) { + _LOGW ("Ignoring invalid static route %s = \"%s\"", key_name, tmp); + continue; + } + + nm_sprintf_buf (key_name, "route_ipv6_gateway_%u", i); + tmp = getenv (key_name); + + route = nm_ip_route_new (AF_INET6, dst, prefix, tmp, -1, &error); + if (!route) { + _LOGW ("Ignoring route#%u: %s", i, error->message); + g_error_free (error); + continue; + } + + g_ptr_array_add (routes, route); + } + + if (!routes->len) + return NULL; + + return nm_utils_ip6_routes_to_variant (routes); +} + +static GVariant * +trusted_remote_to_gvariant (void) +{ + char *tmp; + GVariant *val = NULL; + const char *p; + gboolean is_name = FALSE; + + tmp = getenv ("trusted_ip6"); + if (tmp) { + val = addr6_to_gvariant (tmp); + if (val == NULL) { + _LOGW ("failed to convert VPN gateway address '%s' (%d)", + tmp, errno); + return NULL; + } + return val; + } + + tmp = getenv ("trusted_ip"); + if (!tmp) + tmp = getenv ("remote_1"); + if (!tmp) { + _LOGW ("did not receive remote gateway address"); + return NULL; + } + + /* Check if it seems to be a hostname */ + p = tmp; + while (*p) { + if (*p != '.' && !isdigit (*p)) { + is_name = TRUE; + break; + } + p++; + } + + /* Resolve a hostname if required. Only look for IPv4 addresses */ + if (is_name) { + struct in_addr addr; + struct addrinfo hints; + struct addrinfo *result = NULL, *rp; + int err; + + addr.s_addr = 0; + memset (&hints, 0, sizeof (hints)); + + hints.ai_family = AF_INET; + hints.ai_flags = AI_ADDRCONFIG; + err = getaddrinfo (tmp, NULL, &hints, &result); + if (err != 0) { + _LOGW ("failed to look up VPN gateway address '%s' (%d)", + tmp, err); + return NULL; + } + + /* FIXME: so what if the name resolves to multiple IP addresses? We + * don't know which one pptp decided to use so we could end up using a + * different one here, and the VPN just won't work. + */ + for (rp = result; rp; rp = rp->ai_next) { + if ( (rp->ai_family == AF_INET) + && (rp->ai_addrlen == sizeof (struct sockaddr_in))) { + struct sockaddr_in *inptr = (struct sockaddr_in *) rp->ai_addr; + + memcpy (&addr, &(inptr->sin_addr), sizeof (struct in_addr)); + break; + } + } + + freeaddrinfo (result); + if (addr.s_addr != 0) + return g_variant_new_uint32 (addr.s_addr); + else { + _LOGW ("failed to convert or look up VPN gateway address '%s'", + tmp); + return NULL; + } + } else { + val = addr4_to_gvariant (tmp); + if (val == NULL) { + _LOGW ("failed to convert VPN gateway address '%s' (%d)", + tmp, errno); + return NULL; + } + } + + return val; +} + +int +main (int argc, char *argv[]) +{ + GDBusProxy *proxy; + GVariantBuilder builder, ip4builder, ip6builder; + GVariant *ip4config, *ip6config; + char *tmp; + GVariant *val; + int i; + GError *err = NULL; + GPtrArray *dns4_list, *dns6_list; + GPtrArray *nbns_list; + GPtrArray *dns_domains; + struct in_addr temp_addr; + int tapdev = -1; + char **iter; + int shift = 0; + gboolean is_restart; + gboolean has_ip4_prefix = FALSE; + gboolean has_ip4_address = FALSE; + gboolean has_ip6_address = FALSE; + gchar *bus_name = NM_DBUS_SERVICE_OPENVPN; + +#if !GLIB_CHECK_VERSION (2, 35, 0) + g_type_init (); +#endif + + for (i = 1; i < argc; i++) { + if (!strcmp (argv[i], "--")) { + i++; + break; + } + if (nm_streq (argv[i], "--debug")) { + if (i + 2 >= argc) { + g_printerr ("Missing debug arguments (requires )\n"); + exit (1); + } + gl.log_level = _nm_utils_ascii_str_to_int64 (argv[++i], 10, 0, LOG_DEBUG, 0); + gl.log_prefix_token = argv[++i]; + } else if (!strcmp (argv[i], "--tun")) + tapdev = 0; + else if (!strcmp (argv[i], "--tap")) + tapdev = 1; + else if (!strcmp (argv[i], "--bus-name")) { + if (++i == argc) { + g_printerr ("Missing bus name argument\n"); + exit (1); + } + if (!g_dbus_is_name (argv[i])) { + g_printerr ("Invalid bus name\n"); + exit (1); + } + bus_name = argv[i]; + } else + break; + } + shift = i - 1; + + if (_LOGD_enabled ()) { + GString *args; + + args = g_string_new (NULL); + for (i = 0; i < argc; i++) { + if (i > 0) + g_string_append_c (args, ' '); + if (shift && 1 + shift == i) + g_string_append (args, " "); + tmp = g_strescape (argv[i], NULL); + g_string_append_printf (args, "\"%s\"", tmp); + g_free (tmp); + } + + _LOGD ("command line: %s", args->str); + g_string_free (args, TRUE); + + for (iter = environ; iter && *iter; iter++) + _LOGD ("environment: %s", *iter); + } + + /* shift the arguments to the right leaving only those provided by openvpn */ + argv[shift] = argv[0]; + argv += shift; + argc -= shift; + + is_restart = argc >= 7 && !g_strcmp0 (argv[6], "restart"); + + proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, + bus_name, + NM_VPN_DBUS_PLUGIN_PATH, + NM_VPN_DBUS_PLUGIN_INTERFACE, + NULL, &err); + if (!proxy) { + _LOGW ("Could not create a D-Bus proxy: %s", err->message); + g_error_free (err); + exit (1); + } + + g_variant_builder_init (&builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_init (&ip4builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_init (&ip6builder, G_VARIANT_TYPE_VARDICT); + + /* External world-visible VPN gateway */ + val = trusted_remote_to_gvariant (); + if (val) + g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, val); + else + helper_failed (proxy, "VPN Gateway"); + + /* Internal VPN subnet gateway */ + tmp = getenv ("route_vpn_gateway"); + val = addr4_to_gvariant (tmp); + if (val) + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY, val); + else { + val = addr6_to_gvariant (tmp); + if (val) + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, val); + } + + /* VPN device */ + tmp = getenv ("dev"); + val = str_to_gvariant (tmp, FALSE); + if (val) + g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_CONFIG_TUNDEV, val); + else + helper_failed (proxy, "Tunnel Device"); + + if (tapdev == -1) + tapdev = strncmp (tmp, "tap", 3) == 0; + + /* IPv4 address */ + tmp = getenv ("ifconfig_local"); + if (!tmp && is_restart) + tmp = argv[4]; + if (tmp && strlen (tmp)) { + val = addr4_to_gvariant (tmp); + if (val) { + has_ip4_address = TRUE; + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS, val); + } else + helper_failed (proxy, "IP4 Address"); + } + + /* PTP address; for vpnc PTP address == internal IP4 address */ + tmp = getenv ("ifconfig_remote"); + if (!tmp && is_restart) + tmp = argv[5]; + val = addr4_to_gvariant (tmp); + if (val) { + /* Sigh. Openvpn added 'topology' stuff in 2.1 that changes the meaning + * of the ifconfig bits without actually telling you what they are + * supposed to mean; basically relying on specific 'ifconfig' behavior. + */ + if (tmp && !strncmp (tmp, "255.", 4)) { + guint32 addr; + + /* probably a netmask, not a PTP address; topology == subnet */ + addr = g_variant_get_uint32 (val); + g_variant_unref (val); + val = g_variant_new_uint32 (nm_utils_ip4_netmask_to_prefix (addr)); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, val); + has_ip4_prefix = TRUE; + } else + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PTP, val); + } + + /* Netmask + * + * Either TAP or TUN modes can have an arbitrary netmask in newer versions + * of openvpn, while in older versions only TAP mode would. So accept a + * netmask if passed, otherwise default to /32 for TUN devices since they + * are usually point-to-point. + */ + tmp = getenv ("ifconfig_netmask"); + if (tmp && inet_pton (AF_INET, tmp, &temp_addr) > 0) { + val = g_variant_new_uint32 (nm_utils_ip4_netmask_to_prefix (temp_addr.s_addr)); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, val); + } else if (!tapdev) { + if (has_ip4_address && !has_ip4_prefix) { + val = g_variant_new_uint32 (32); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, val); + } + } else + _LOGW ("No IP4 netmask/prefix (missing or invalid 'ifconfig_netmask')"); + + val = get_ip4_routes (); + if (val) + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_ROUTES, val); + else if (is_restart) { + g_variant_builder_add (&ip4builder, "{sv}", + NM_VPN_PLUGIN_IP4_CONFIG_PRESERVE_ROUTES, + g_variant_new_boolean (TRUE)); + } + + /* IPv6 address */ + tmp = getenv ("ifconfig_ipv6_local"); + if (tmp && strlen (tmp)) { + val = addr6_to_gvariant (tmp); + if (val) { + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, val); + has_ip6_address = TRUE; + } else + helper_failed (proxy, "IP6 Address"); + } + + /* IPv6 remote address */ + tmp = getenv ("ifconfig_ipv6_remote"); + if (tmp && strlen (tmp)) { + val = addr6_to_gvariant (tmp); + if (val) + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_PTP, val); + else + helper_failed (proxy, "IP6 PTP Address"); + } + + /* IPv6 netbits */ + tmp = getenv ("ifconfig_ipv6_netbits"); + if (tmp && strlen (tmp)) { + long int netbits; + + errno = 0; + netbits = strtol (tmp, NULL, 10); + if (errno || netbits < 0 || netbits > 128) { + _LOGW ("Ignoring invalid prefix '%s'", tmp); + } else { + val = g_variant_new_uint32 ((guint32) netbits); + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_PREFIX, val); + } + } + + val = get_ip6_routes (); + if (val) + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_ROUTES, val); + else if (is_restart) { + g_variant_builder_add (&ip6builder, "{sv}", + NM_VPN_PLUGIN_IP6_CONFIG_PRESERVE_ROUTES, + g_variant_new_boolean (TRUE)); + } + + /* DNS and WINS servers */ + dns_domains = g_ptr_array_sized_new (3); + dns4_list = g_ptr_array_new (); + dns6_list = g_ptr_array_new (); + nbns_list = g_ptr_array_new (); + + for (i = 1; i < 256; i++) { + char *env_name; + + env_name = g_strdup_printf ("foreign_option_%d", i); + tmp = getenv (env_name); + g_free (env_name); + + if (!tmp || strlen (tmp) < 1) + break; + + if (!g_str_has_prefix (tmp, "dhcp-option ")) + continue; + + tmp += 12; /* strlen ("dhcp-option ") */ + + if (g_str_has_prefix (tmp, "DNS ")) + parse_addr_list (dns4_list, dns6_list, tmp + 4); + else if (g_str_has_prefix (tmp, "WINS ")) + parse_addr_list (nbns_list, NULL, tmp + 5); + else if (g_str_has_prefix (tmp, "DOMAIN ") && is_domain_valid (tmp + 7)) + g_ptr_array_add (dns_domains, tmp + 7); + } + + if (dns4_list->len) { + val = g_variant_new_array (G_VARIANT_TYPE_UINT32, (GVariant **) dns4_list->pdata, dns4_list->len); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_DNS, val); + } + + if (has_ip6_address && dns6_list->len) { + val = g_variant_new_array (G_VARIANT_TYPE ("ay"), (GVariant **) dns6_list->pdata, dns6_list->len); + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_DNS, val); + } + + if (nbns_list->len) { + val = g_variant_new_array (G_VARIANT_TYPE_UINT32, (GVariant **) nbns_list->pdata, nbns_list->len); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_NBNS, val); + } + + if (dns_domains->len) { + val = g_variant_new_strv ((const gchar **) dns_domains->pdata, dns_domains->len); + g_variant_builder_add (&ip4builder, "{sv}", NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS, val); + + /* Domains apply to both IPv4 and IPv6 configurations */ + if (has_ip6_address) { + val = g_variant_new_strv ((const gchar **) dns_domains->pdata, dns_domains->len); + g_variant_builder_add (&ip6builder, "{sv}", NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS, val); + } + } + + g_ptr_array_unref (dns4_list); + g_ptr_array_unref (dns6_list); + g_ptr_array_unref (nbns_list); + g_ptr_array_unref (dns_domains); + + /* Tunnel MTU */ + tmp = getenv ("tun_mtu"); + if (tmp && tmp[0]) { + guint32 mtu; + + mtu = _nm_utils_ascii_str_to_int64 (tmp, 10, 0, G_MAXUINT32, 0); + if (errno) + _LOGW ("Ignoring invalid tunnel MTU '%s'", tmp); + else { + g_variant_builder_add (&builder, "{sv}", + NM_VPN_PLUGIN_CONFIG_MTU, + g_variant_new_uint32 (mtu)); + } + } + + ip4config = g_variant_builder_end (&ip4builder); + + if (g_variant_n_children (ip4config)) { + val = g_variant_new_boolean (TRUE); + g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_CONFIG_HAS_IP4, val); + } else { + g_variant_unref (ip4config); + ip4config = NULL; + } + + ip6config = g_variant_builder_end (&ip6builder); + + if (g_variant_n_children (ip6config)) { + val = g_variant_new_boolean (TRUE); + g_variant_builder_add (&builder, "{sv}", NM_VPN_PLUGIN_CONFIG_HAS_IP6, val); + } else { + g_variant_unref (ip6config); + ip6config = NULL; + } + + if (!ip4config && !ip6config) + helper_failed (proxy, "IPv4 or IPv6 configuration"); + + /* Send the config info to nm-openvpn-service */ + send_config (proxy, g_variant_builder_end (&builder), ip4config, ip6config); + + g_object_unref (proxy); + + return 0; +} diff --git a/src/nm-openvpn-service.c b/src/nm-openvpn-service.c new file mode 100644 index 0000000..923517f --- /dev/null +++ b/src/nm-openvpn-service.c @@ -0,0 +1,2322 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ +/* nm-openvpn-service - openvpn integration with NetworkManager + * + * Copyright (C) 2005 - 2008 Tim Niemueller + * Copyright (C) 2005 - 2010 Dan Williams + * + * 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. + * + * $Id: nm-openvpn-service.c 4232 2008-10-29 09:13:40Z tambeti $ + * + */ + +#include "nm-default.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "nm-utils/nm-shared-utils.h" +#include "nm-utils/nm-vpn-plugin-macros.h" + +#if !defined(DIST_VERSION) +# define DIST_VERSION VERSION +#endif + +#define RUNDIR LOCALSTATEDIR"/run/NetworkManager" + +static struct { + gboolean debug; + int log_level; + int log_level_ovpn; + bool log_syslog; + GSList *pids_pending_list; +} gl/*obal*/; + +#define NM_OPENVPN_HELPER_PATH LIBEXECDIR"/nm-openvpn-service-openvpn-helper" + +/*****************************************************************************/ + +#define NM_TYPE_OPENVPN_PLUGIN (nm_openvpn_plugin_get_type ()) +#define NM_OPENVPN_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_OPENVPN_PLUGIN, NMOpenvpnPlugin)) +#define NM_OPENVPN_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_OPENVPN_PLUGIN, NMOpenvpnPluginClass)) +#define NM_IS_OPENVPN_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_OPENVPN_PLUGIN)) +#define NM_IS_OPENVPN_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_OPENVPN_PLUGIN)) +#define NM_OPENVPN_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_OPENVPN_PLUGIN, NMOpenvpnPluginClass)) + +typedef struct { + NMVpnServicePlugin parent; +} NMOpenvpnPlugin; + +typedef struct { + NMVpnServicePluginClass parent; +} NMOpenvpnPluginClass; + +GType nm_openvpn_plugin_get_type (void); + +NMOpenvpnPlugin *nm_openvpn_plugin_new (const char *bus_name); + +/*****************************************************************************/ + +typedef enum { + OPENVPN_BINARY_VERSION_INVALID, + OPENVPN_BINARY_VERSION_UNKNOWN, + OPENVPN_BINARY_VERSION_2_3_OR_OLDER, + OPENVPN_BINARY_VERSION_2_4_OR_NEWER, +} OpenvpnBinaryVersion; + +typedef struct { + GPid pid; + guint watch_id; + guint kill_id; + NMOpenvpnPlugin *plugin; +} PidsPendingData; + +typedef struct { + char *default_username; + char *username; + char *password; + char *priv_key_pass; + char *proxy_username; + char *proxy_password; + char *pending_auth; + char *challenge_state_id; + char *challenge_text; + GIOChannel *socket_channel; + guint socket_channel_eventid; +} NMOpenvpnPluginIOData; + +typedef struct { + GPid pid; + guint connect_timer; + guint connect_count; + NMOpenvpnPluginIOData *io_data; + gboolean interactive; + char *mgt_path; +} NMOpenvpnPluginPrivate; + +G_DEFINE_TYPE (NMOpenvpnPlugin, nm_openvpn_plugin, NM_TYPE_VPN_SERVICE_PLUGIN) + +#define NM_OPENVPN_PLUGIN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_OPENVPN_PLUGIN, NMOpenvpnPluginPrivate)) + +/*****************************************************************************/ + +typedef struct { + const char *name; + GType type; + gint int_min; + gint int_max; + gboolean address; +} ValidProperty; + +static const ValidProperty valid_properties[] = { + { NM_OPENVPN_KEY_AUTH, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CA, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CERT, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CIPHER, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_KEYSIZE, G_TYPE_INT, 1, 65535, FALSE }, + { NM_OPENVPN_KEY_COMP_LZO, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CONNECTION_TYPE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_FLOAT, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_FRAGMENT_SIZE, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_KEY, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_LOCAL_IP, G_TYPE_STRING, 0, 0, TRUE }, + { NM_OPENVPN_KEY_MSSFIX, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_MTU_DISC, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PING, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_PING_EXIT, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_PING_RESTART, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_MAX_ROUTES, G_TYPE_INT, 0, 100000000, FALSE }, + { NM_OPENVPN_KEY_PROTO_TCP, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PORT, G_TYPE_INT, 1, 65535, FALSE }, + { NM_OPENVPN_KEY_PROXY_TYPE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PROXY_SERVER, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PROXY_PORT, G_TYPE_INT, 1, 65535, FALSE }, + { NM_OPENVPN_KEY_PROXY_RETRY, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_REMOTE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_REMOTE_RANDOM, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_REMOTE_IP, G_TYPE_STRING, 0, 0, TRUE }, + { NM_OPENVPN_KEY_RENEG_SECONDS, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_STATIC_KEY, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_STATIC_KEY_DIRECTION, G_TYPE_INT, 0, 1, FALSE }, + { NM_OPENVPN_KEY_TA, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TA_DIR, G_TYPE_INT, 0, 1, FALSE }, + { NM_OPENVPN_KEY_TAP_DEV, G_TYPE_BOOLEAN, 0, 0, FALSE }, + { NM_OPENVPN_KEY_DEV, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_DEV_TYPE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TUN_IPV6, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TLS_CIPHER, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TLS_CRYPT, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TLS_REMOTE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_VERIFY_X509_NAME, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_REMOTE_CERT_TLS, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_NS_CERT_TYPE, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_TUNNEL_MTU, G_TYPE_INT, 0, G_MAXINT, FALSE }, + { NM_OPENVPN_KEY_USERNAME, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_PASSWORD"-flags", G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CERTPASS"-flags", G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_NOSECRET, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD"-flags", G_TYPE_STRING, 0, 0, FALSE }, + { NULL, G_TYPE_NONE, FALSE } +}; + +static const ValidProperty valid_secrets[] = { + { NM_OPENVPN_KEY_PASSWORD, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_CERTPASS, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_NOSECRET, G_TYPE_STRING, 0, 0, FALSE }, + { NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD, G_TYPE_STRING, 0, 0, FALSE }, + { NULL, G_TYPE_NONE, FALSE } +}; + +/*****************************************************************************/ + +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (gl.log_level >= (level)) { \ + g_print ("nm-openvpn[%ld] %-7s " _NM_UTILS_MACRO_FIRST (__VA_ARGS__) "\n", \ + (long) getpid (), \ + nm_utils_syslog_to_str (level) \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } \ + } G_STMT_END + +static gboolean +_LOGD_enabled (void) +{ + return gl.log_level >= LOG_INFO; +} + +#define _LOGD(...) _NMLOG(LOG_INFO, __VA_ARGS__) +#define _LOGI(...) _NMLOG(LOG_NOTICE, __VA_ARGS__) +#define _LOGW(...) _NMLOG(LOG_WARNING, __VA_ARGS__) + +/*****************************************************************************/ + +static const char * +openvpn_binary_find_exepath (void) +{ + static const char *paths[] = { + "/usr/sbin/openvpn", + "/sbin/openvpn", + "/usr/local/sbin/openvpn", + }; + int i; + + for (i = 0; i < G_N_ELEMENTS (paths); i++) { + if (g_file_test (paths[i], G_FILE_TEST_EXISTS)) + return paths[i]; + } + return NULL; +} + +static OpenvpnBinaryVersion +openvpn_binary_detect_version (const char *exepath) +{ + gs_free char *s_stdout = NULL; + const char *s; + int exit_code; + int n; + + g_return_val_if_fail (exepath && exepath[0] == '/', OPENVPN_BINARY_VERSION_UNKNOWN); + + if (!g_spawn_sync (NULL, + (char *[]) { (char *) exepath, "--version", NULL }, + NULL, + G_SPAWN_STDERR_TO_DEV_NULL, + NULL, + NULL, + &s_stdout, + NULL, + &exit_code, + NULL)) + return OPENVPN_BINARY_VERSION_UNKNOWN; + + if ( !WIFEXITED (exit_code) + || WEXITSTATUS (exit_code) != 1) { + /* expect return code 1 (OPENVPN_EXIT_STATUS_USAGE) */ + return OPENVPN_BINARY_VERSION_UNKNOWN; + } + + /* the output for --version starts with title_string, which starts with PACKAGE_STRING, + * which looks like "OpenVPN 2.#...". Do a strict parsing here... */ + if ( !s_stdout + || !g_str_has_prefix (s_stdout, "OpenVPN 2.")) + return OPENVPN_BINARY_VERSION_UNKNOWN; + s = &s_stdout[NM_STRLEN ("OpenVPN 2.")]; + + if (!g_ascii_isdigit (s[0])) + return OPENVPN_BINARY_VERSION_UNKNOWN; + + n = 0; + do { + if (n > G_MAXINT / 100) + return OPENVPN_BINARY_VERSION_UNKNOWN; + n = (n * 10) + (s[0] - '0'); + } while (g_ascii_isdigit ((++s)[0])); + + if (n <= 3) + return OPENVPN_BINARY_VERSION_2_3_OR_OLDER; + return OPENVPN_BINARY_VERSION_2_4_OR_NEWER; +} + +static OpenvpnBinaryVersion +openvpn_binary_detect_version_cached (const char *exepath, OpenvpnBinaryVersion *cached) +{ + if (G_UNLIKELY (*cached == OPENVPN_BINARY_VERSION_INVALID)) + *cached = openvpn_binary_detect_version (exepath); + return *cached; +} + +/*****************************************************************************/ + +static void +pids_pending_data_free (PidsPendingData *pid_data) +{ + nm_clear_g_source (&pid_data->watch_id); + nm_clear_g_source (&pid_data->kill_id); + if (pid_data->plugin) + g_object_remove_weak_pointer ((GObject *) pid_data->plugin, (gpointer *) &pid_data->plugin); + g_slice_free (PidsPendingData, pid_data); +} + +static PidsPendingData * +pids_pending_get (GPid pid) +{ + GSList *iter; + + for (iter = gl.pids_pending_list; iter; iter = iter->next) { + if (((PidsPendingData *) iter->data)->pid == pid) + return iter->data; + } + g_return_val_if_reached (NULL); +} + +static void openvpn_child_terminated (NMOpenvpnPlugin *plugin, GPid pid, gint status); + +static void +pids_pending_child_watch_cb (GPid pid, gint status, gpointer user_data) +{ + PidsPendingData *pid_data = user_data; + NMOpenvpnPlugin *plugin; + + if (WIFEXITED (status)) { + int exit_status; + + exit_status = WEXITSTATUS (status); + if (exit_status != 0) + _LOGW ("openvpn[%ld] exited with error code %d", (long) pid, exit_status); + else + _LOGI ("openvpn[%ld] exited with success", (long) pid); + } + else if (WIFSTOPPED (status)) + _LOGW ("openvpn[%ld] stopped unexpectedly with signal %d", (long) pid, WSTOPSIG (status)); + else if (WIFSIGNALED (status)) + _LOGW ("openvpn[%ld] died with signal %d", (long) pid, WTERMSIG (status)); + else + _LOGW ("openvpn[%ld] died from an unnatural cause", (long) pid); + + g_return_if_fail (pid_data); + g_return_if_fail (pid_data->pid == pid); + g_return_if_fail (g_slist_find (gl.pids_pending_list, pid_data)); + + plugin = pid_data->plugin; + + pid_data->watch_id = 0; + gl.pids_pending_list = g_slist_remove (gl.pids_pending_list , pid_data); + pids_pending_data_free (pid_data); + + if (plugin) + openvpn_child_terminated (plugin, pid, status); +} + +static void +pids_pending_add (GPid pid, NMOpenvpnPlugin *plugin) +{ + PidsPendingData *pid_data; + + g_return_if_fail (NM_IS_OPENVPN_PLUGIN (plugin)); + g_return_if_fail (pid > 0); + + _LOGI ("openvpn[%ld] started", (long) pid); + + pid_data = g_slice_new (PidsPendingData); + pid_data->pid = pid; + pid_data->kill_id = 0; + pid_data->watch_id = g_child_watch_add (pid, pids_pending_child_watch_cb, pid_data); + pid_data->plugin = plugin; + g_object_add_weak_pointer ((GObject *) plugin, (gpointer *) &pid_data->plugin); + + gl.pids_pending_list = g_slist_prepend (gl.pids_pending_list, pid_data); +} + +static gboolean +pids_pending_ensure_killed (gpointer user_data) +{ + PidsPendingData *pid_data = user_data; + + g_return_val_if_fail (pid_data && pid_data == pids_pending_get (pid_data->pid), FALSE); + + _LOGI ("openvpn[%ld]: send SIGKILL", (long) pid_data->pid); + + pid_data->kill_id = 0; + kill (pid_data->pid, SIGKILL); + return FALSE; +} + +static void +pids_pending_send_sigterm (GPid pid) +{ + PidsPendingData *pid_data; + + pid_data = pids_pending_get (pid); + g_return_if_fail (pid_data); + + _LOGI ("openvpn[%ld]: send SIGTERM", (long) pid); + + kill (pid, SIGTERM); + pid_data->kill_id = g_timeout_add (2000, pids_pending_ensure_killed, pid_data); +} + +static void +pids_pending_wait_for_processes (GMainLoop *main_loop) +{ + if (gl.pids_pending_list) { + _LOGI ("wait for %u openvpn processes to terminate...", g_slist_length (gl.pids_pending_list)); + + do { + g_main_context_iteration (g_main_loop_get_context (main_loop), TRUE); + } while (gl.pids_pending_list); + } +} + +/*****************************************************************************/ + +static gboolean +validate_address (const char *address) +{ + const char *p = address; + + if (!address || !strlen (address)) + return FALSE; + + /* Ensure it's a valid DNS name or IP address */ + while (*p) { + if (!isalnum (*p) && (*p != '-') && (*p != '.')) + return FALSE; + p++; + } + return TRUE; +} + +typedef struct ValidateInfo { + const ValidProperty *table; + GError **error; + gboolean have_items; +} ValidateInfo; + +static void +validate_one_property (const char *key, const char *value, gpointer user_data) +{ + ValidateInfo *info = (ValidateInfo *) user_data; + int i; + + if (*(info->error)) + return; + + info->have_items = TRUE; + + /* 'name' is the setting name; always allowed but unused */ + if (!strcmp (key, NM_SETTING_NAME)) + return; + + for (i = 0; info->table[i].name; i++) { + const ValidProperty *prop = &info->table[i]; + long int tmp; + + if (strcmp (prop->name, key)) + continue; + + switch (prop->type) { + case G_TYPE_STRING: + if (!prop->address || validate_address (value)) + return; /* valid */ + + g_set_error (info->error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("invalid address “%s”"), + key); + break; + case G_TYPE_INT: + errno = 0; + tmp = strtol (value, NULL, 10); + if (errno == 0 && tmp >= prop->int_min && tmp <= prop->int_max) + return; /* valid */ + + g_set_error (info->error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("invalid integer property “%s” or out of range [%d -> %d]"), + key, prop->int_min, prop->int_max); + break; + case G_TYPE_BOOLEAN: + if (!strcmp (value, "yes") || !strcmp (value, "no")) + return; /* valid */ + + g_set_error (info->error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + /* Translators: keep "yes" and "no" untranslated! */ + _("invalid boolean property “%s” (not yes or no)"), + key); + break; + default: + g_set_error (info->error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("unhandled property “%s” type %s"), + key, g_type_name (prop->type)); + break; + } + } + + /* Did not find the property from valid_properties or the type did not match */ + if (!info->table[i].name) { + g_set_error (info->error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("property “%s” invalid or not supported"), + key); + } +} + +static gboolean +nm_openvpn_properties_validate (NMSettingVpn *s_vpn, GError **error) +{ + GError *validate_error = NULL; + ValidateInfo info = { &valid_properties[0], &validate_error, FALSE }; + + nm_setting_vpn_foreach_data_item (s_vpn, validate_one_property, &info); + if (!info.have_items) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("No VPN configuration options.")); + return FALSE; + } + + if (validate_error) { + *error = validate_error; + return FALSE; + } + return TRUE; +} + +static gboolean +nm_openvpn_secrets_validate (NMSettingVpn *s_vpn, GError **error) +{ + GError *validate_error = NULL; + ValidateInfo info = { &valid_secrets[0], &validate_error, FALSE }; + + nm_setting_vpn_foreach_secret (s_vpn, validate_one_property, &info); + if (validate_error) { + g_propagate_error (error, validate_error); + return FALSE; + } + return TRUE; +} + +static void +nm_openvpn_disconnect_management_socket (NMOpenvpnPlugin *plugin) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + NMOpenvpnPluginIOData *io_data = priv->io_data; + + /* This should not throw a warning since this can happen in + non-password modes */ + if (!io_data) + return; + + if (io_data->socket_channel_eventid) + g_source_remove (io_data->socket_channel_eventid); + if (io_data->socket_channel) { + g_io_channel_shutdown (io_data->socket_channel, FALSE, NULL); + g_io_channel_unref (io_data->socket_channel); + } + + g_free (io_data->username); + g_free (io_data->proxy_username); + g_free (io_data->pending_auth); + + if (io_data->password) + memset (io_data->password, 0, strlen (io_data->password)); + g_free (io_data->password); + + if (io_data->priv_key_pass) + memset (io_data->priv_key_pass, 0, strlen (io_data->priv_key_pass)); + g_free (io_data->priv_key_pass); + + if (io_data->proxy_password) + memset (io_data->proxy_password, 0, strlen (io_data->proxy_password)); + g_free (io_data->proxy_password); + g_free (io_data->challenge_state_id); + g_free (io_data->challenge_text); + + g_free (priv->io_data); + priv->io_data = NULL; +} + +static char * +ovpn_quote_string (const char *unquoted) +{ + char *quoted = NULL, *q; + char *u = (char *) unquoted; + + g_return_val_if_fail (unquoted != NULL, NULL); + + /* FIXME: use unpaged memory */ + quoted = q = g_malloc0 (strlen (unquoted) * 2); + while (*u) { + /* Escape certain characters */ + if (*u == ' ' || *u == '\\' || *u == '"') + *q++ = '\\'; + *q++ = *u++; + } + + return quoted; +} + +static char * +get_detail (const char *input, const char *prefix) +{ + const char *end; + + nm_assert (prefix); + + if (!g_str_has_prefix (input, prefix)) + return NULL; + + /* Grab characters until the next ' */ + input += strlen (prefix); + end = strchr (input, '\''); + if (end) + return g_strndup (input, end - input); + return NULL; +} + +/* Parse challenge response protocol message of the form + * CRV1:flags:state_id:username:text + */ +static gboolean +parse_challenge (const char *failure_reason, char **challenge_state_id, char **challenge_text) +{ + const char *colon[4]; + + if ( !failure_reason + || !g_str_has_prefix (failure_reason, "CRV1:")) + return FALSE; + + colon[0] = strchr (failure_reason, ':'); + if (!colon[0]) + return FALSE; + + colon[1] = strchr (colon[0] + 1, ':'); + if (!colon[1]) + return FALSE; + + colon[2] = strchr (colon[1] + 1, ':'); + if (!colon[2]) + return FALSE; + + colon[3] = strchr (colon[2] + 1, ':'); + if (!colon[3]) + return FALSE; + + *challenge_state_id = g_strndup (colon[1] + 1, colon[2] - colon[1] - 1); + *challenge_text = g_strdup (colon[3] + 1); + return TRUE; +} + +static void +write_user_pass (GIOChannel *channel, + const char *authtype, + const char *user, + const char *pass) +{ + char *quser, *qpass, *buf; + + /* Quote strings passed back to openvpn */ + quser = ovpn_quote_string (user); + qpass = ovpn_quote_string (pass); + buf = g_strdup_printf ("username \"%s\" \"%s\"\n" + "password \"%s\" \"%s\"\n", + authtype, quser, + authtype, qpass); + memset (qpass, 0, strlen (qpass)); + g_free (qpass); + g_free (quser); + + /* Will always write everything in blocking channels (on success) */ + g_io_channel_write_chars (channel, buf, strlen (buf), NULL, NULL); + g_io_channel_flush (channel, NULL); + + memset (buf, 0, strlen (buf)); + g_free (buf); +} + +static gboolean +handle_auth (NMOpenvpnPluginIOData *io_data, + const char *requested_auth, + const char **out_message, + char ***out_hints) +{ + gboolean handled = FALSE; + guint i = 0; + char **hints = NULL; + + g_return_val_if_fail (requested_auth != NULL, FALSE); + g_return_val_if_fail (out_message != NULL, FALSE); + g_return_val_if_fail (out_hints != NULL, FALSE); + + if (strcmp (requested_auth, "Auth") == 0) { + const char *username = io_data->username; + + /* Fall back to the default username if it wasn't overridden by the user */ + if (!username) + username = io_data->default_username; + + if (username != NULL && io_data->password != NULL && io_data->challenge_state_id) { + gs_free char *response = NULL; + + response = g_strdup_printf ("CRV1::%s::%s", + io_data->challenge_state_id, + io_data->password); + write_user_pass (io_data->socket_channel, + requested_auth, + username, + response); + nm_clear_g_free (&io_data->challenge_state_id); + nm_clear_g_free (&io_data->challenge_text); + } else if (username != NULL && io_data->password != NULL) { + write_user_pass (io_data->socket_channel, + requested_auth, + username, + io_data->password); + } else { + hints = g_new0 (char *, 3); + if (!username) { + hints[i++] = NM_OPENVPN_KEY_USERNAME; + *out_message = _("A username is required."); + } + if (!io_data->password) { + hints[i++] = NM_OPENVPN_KEY_PASSWORD; + *out_message = _("A password is required."); + } + if (!username && !io_data->password) + *out_message = _("A username and password are required."); + if (io_data->challenge_text) + *out_message = io_data->challenge_text; + } + handled = TRUE; + } else if (!strcmp (requested_auth, "Private Key")) { + if (io_data->priv_key_pass) { + char *qpass, *buf; + + /* Quote strings passed back to openvpn */ + qpass = ovpn_quote_string (io_data->priv_key_pass); + buf = g_strdup_printf ("password \"%s\" \"%s\"\n", requested_auth, qpass); + memset (qpass, 0, strlen (qpass)); + g_free (qpass); + + /* Will always write everything in blocking channels (on success) */ + g_io_channel_write_chars (io_data->socket_channel, buf, strlen (buf), NULL, NULL); + g_io_channel_flush (io_data->socket_channel, NULL); + g_free (buf); + } else { + hints = g_new0 (char *, 2); + hints[i++] = NM_OPENVPN_KEY_CERTPASS; + *out_message = _("A private key password is required."); + } + handled = TRUE; + } else if (strcmp (requested_auth, "HTTP Proxy") == 0) { + if (io_data->proxy_username != NULL && io_data->proxy_password != NULL) { + write_user_pass (io_data->socket_channel, + requested_auth, + io_data->proxy_username, + io_data->proxy_password); + } else { + hints = g_new0 (char *, 3); + if (!io_data->proxy_username) { + hints[i++] = NM_OPENVPN_KEY_HTTP_PROXY_USERNAME; + *out_message = _("An HTTP Proxy username is required."); + } + if (!io_data->proxy_password) { + hints[i++] = NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD; + *out_message = _("An HTTP Proxy password is required."); + } + if (!io_data->proxy_username && !io_data->proxy_password) + *out_message = _("An HTTP Proxy username and password are required."); + } + handled = TRUE; + } + + *out_hints = hints; + return handled; +} + +static gboolean +handle_management_socket (NMOpenvpnPlugin *plugin, + GIOChannel *source, + GIOCondition condition, + NMVpnPluginFailure *out_failure) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + gboolean again = TRUE; + char *str = NULL, *auth = NULL; + const char *message = NULL; + char **hints = NULL; + + g_assert (out_failure); + + if (!(condition & G_IO_IN)) + return TRUE; + + if (g_io_channel_read_line (source, &str, NULL, NULL, NULL) != G_IO_STATUS_NORMAL) + return TRUE; + + if (!str[0]) { + g_free (str); + return TRUE; + } + + _LOGD ("VPN request '%s'", str); + + auth = get_detail (str, ">PASSWORD:Need '"); + if (auth) { + if (priv->io_data->pending_auth) + g_free (priv->io_data->pending_auth); + priv->io_data->pending_auth = auth; + + if (handle_auth (priv->io_data, auth, &message, &hints)) { + /* Request new secrets if we need any */ + if (message) { + if (priv->interactive) { + gs_free char *joined = NULL; + + _LOGD ("Requesting new secrets: '%s', %s%s%s", message, + NM_PRINT_FMT_QUOTED (hints, "(", (joined = g_strjoinv (",", (char **) hints)), ")", "no hints")); + + nm_vpn_service_plugin_secrets_required ((NMVpnServicePlugin *) plugin, message, (const char **) hints); + } else { + /* Interactive not allowed, can't ask for more secrets */ + _LOGW ("More secrets required but cannot ask interactively"); + *out_failure = NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED; + again = FALSE; + } + } + if (hints) + g_free (hints); /* elements are 'const' */ + } else { + _LOGW ("Unhandled management socket request '%s'", auth); + *out_failure = NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED; + again = FALSE; + } + goto out; + } + + auth = get_detail (str, ">PASSWORD:Verification Failed: '"); + if (auth) { + gboolean fail = TRUE; + + if (!strcmp (auth, "Auth")) { + gs_free char *failure_reason = NULL; + + failure_reason = get_detail (auth, ">PASSWORD:Verification Failed: 'Auth' ['"); + if (parse_challenge (failure_reason, &priv->io_data->challenge_state_id, &priv->io_data->challenge_text)) { + _LOGD ("Received challenge '%s' for state '%s'", + priv->io_data->challenge_state_id, + priv->io_data->challenge_text); + } else + _LOGW ("Password verification failed"); + + if (priv->interactive) { + /* Clear existing password in interactive mode, openvpn + * will request a new one after restarting. + */ + if (priv->io_data->password) + memset (priv->io_data->password, 0, strlen (priv->io_data->password)); + g_clear_pointer (&priv->io_data->password, g_free); + fail = FALSE; + } + } else if (!strcmp (auth, "Private Key")) + _LOGW ("Private key verification failed"); + else + _LOGW ("Unknown verification failed: %s", auth); + + if (fail) { + *out_failure = NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED; + again = FALSE; + } + + g_free (auth); + } + +out: + g_free (str); + return again; +} + +static gboolean +nm_openvpn_socket_data_cb (GIOChannel *source, GIOCondition condition, gpointer user_data) +{ + NMOpenvpnPlugin *plugin = NM_OPENVPN_PLUGIN (user_data); + NMVpnPluginFailure failure = NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED; + + if (!handle_management_socket (plugin, source, condition, &failure)) { + nm_vpn_service_plugin_failure ((NMVpnServicePlugin *) plugin, failure); + return FALSE; + } + + return TRUE; +} + +static gboolean +nm_openvpn_connect_timer_cb (gpointer data) +{ + NMOpenvpnPlugin *plugin = NM_OPENVPN_PLUGIN (data); + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + NMOpenvpnPluginIOData *io_data = priv->io_data; + struct sockaddr_un remote = { 0 }; + int fd; + + priv->connect_count++; + + /* open socket and start listener */ + fd = socket (AF_UNIX, SOCK_STREAM, 0); + if (fd < 0) { + _LOGW ("Could not create management socket"); + nm_vpn_service_plugin_failure (NM_VPN_SERVICE_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED); + goto out; + } + + remote.sun_family = AF_UNIX; + g_strlcpy (remote.sun_path, priv->mgt_path, sizeof (remote.sun_path)); + if (connect (fd, (struct sockaddr *) &remote, sizeof (remote)) != 0) { + close (fd); + if (priv->connect_count <= 30) + return G_SOURCE_CONTINUE; + + priv->connect_timer = 0; + + _LOGW ("Could not open management socket"); + nm_vpn_service_plugin_failure (NM_VPN_SERVICE_PLUGIN (plugin), NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED); + } else { + io_data->socket_channel = g_io_channel_unix_new (fd); + g_io_channel_set_encoding (io_data->socket_channel, NULL, NULL); + io_data->socket_channel_eventid = g_io_add_watch (io_data->socket_channel, + G_IO_IN, + nm_openvpn_socket_data_cb, + plugin); + } + +out: + priv->connect_timer = 0; + return G_SOURCE_REMOVE; +} + +static void +nm_openvpn_schedule_connect_timer (NMOpenvpnPlugin *plugin) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + + if (priv->connect_timer == 0) + priv->connect_timer = g_timeout_add (200, nm_openvpn_connect_timer_cb, plugin); +} + +static void +openvpn_child_terminated (NMOpenvpnPlugin *plugin, GPid pid, gint status) +{ + NMOpenvpnPluginPrivate *priv; + NMVpnPluginFailure failure = NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED; + gboolean good_exit = FALSE; + + g_return_if_fail (NM_IS_OPENVPN_PLUGIN (plugin)); + + priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + /* Reap child if needed. */ + if (priv->pid != pid) { + /* the dead child is not the currently active process. Nothing to do, we just + * reaped the PID. */ + return; + } + + priv->pid = 0; + + /* OpenVPN doesn't supply useful exit codes :( */ + if (WIFEXITED (status) && WEXITSTATUS (status) == 0) + good_exit = TRUE; + + /* Try to get the last bits of data from openvpn */ + if (priv->io_data && priv->io_data->socket_channel) { + GIOChannel *channel = priv->io_data->socket_channel; + GIOCondition condition; + + while ((condition = g_io_channel_get_buffer_condition (channel)) & G_IO_IN) { + if (!handle_management_socket (plugin, channel, condition, &failure)) { + good_exit = FALSE; + break; + } + } + } + + if (good_exit) + nm_vpn_service_plugin_disconnect ((NMVpnServicePlugin *) plugin, NULL); + else + nm_vpn_service_plugin_failure ((NMVpnServicePlugin *) plugin, failure); +} + +static gboolean +validate_auth (const char *auth) +{ + if (auth) { + if ( !strcmp (auth, NM_OPENVPN_AUTH_NONE) + || !strcmp (auth, NM_OPENVPN_AUTH_RSA_MD4) + || !strcmp (auth, NM_OPENVPN_AUTH_MD5) + || !strcmp (auth, NM_OPENVPN_AUTH_SHA1) + || !strcmp (auth, NM_OPENVPN_AUTH_SHA224) + || !strcmp (auth, NM_OPENVPN_AUTH_SHA256) + || !strcmp (auth, NM_OPENVPN_AUTH_SHA384) + || !strcmp (auth, NM_OPENVPN_AUTH_SHA512) + || !strcmp (auth, NM_OPENVPN_AUTH_RIPEMD160)) + return TRUE; + } + return FALSE; +} + +static const char * +validate_connection_type (const char *ctype) +{ + if (ctype) { + if ( !strcmp (ctype, NM_OPENVPN_CONTYPE_TLS) + || !strcmp (ctype, NM_OPENVPN_CONTYPE_STATIC_KEY) + || !strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD) + || !strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) + return ctype; + } + return NULL; +} + +static gboolean +connection_type_is_tls_mode (const char *connection_type) +{ + return strcmp (connection_type, NM_OPENVPN_CONTYPE_TLS) == 0 + || strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD) == 0 + || strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD_TLS) == 0; +} + +static void +add_openvpn_arg (GPtrArray *args, const char *arg) +{ + g_return_if_fail (args != NULL); + g_return_if_fail (arg != NULL); + + g_ptr_array_add (args, g_strdup (arg)); +} + +static const char * +add_openvpn_arg_utf8safe (GPtrArray *args, const char *arg) +{ + char *arg_unescaped; + + g_return_val_if_fail (args, NULL); + g_return_val_if_fail (arg, NULL); + + arg_unescaped = nm_utils_str_utf8safe_unescape_cp (arg); + g_ptr_array_add (args, arg_unescaped); + return arg_unescaped; +} + +static gboolean +add_openvpn_arg_int (GPtrArray *args, const char *arg) +{ + long int tmp_int; + + g_return_val_if_fail (args != NULL, FALSE); + g_return_val_if_fail (arg != NULL, FALSE); + + /* Convert -> int and back to string for security's sake since + * strtol() ignores some leading and trailing characters. + */ + errno = 0; + tmp_int = strtol (arg, NULL, 10); + if (errno != 0) + return FALSE; + g_ptr_array_add (args, (gpointer) g_strdup_printf ("%d", (guint32) tmp_int)); + return TRUE; +} + +static void +add_cert_args (GPtrArray *args, NMSettingVpn *s_vpn) +{ + const char *ca, *cert, *key; + gs_free char *ca_free = NULL, *cert_free = NULL, *key_free = NULL; + + g_return_if_fail (args != NULL); + g_return_if_fail (s_vpn != NULL); + + ca = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CA); + cert = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CERT); + key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + + ca = nm_utils_str_utf8safe_unescape (ca, &ca_free); + cert = nm_utils_str_utf8safe_unescape (cert, &cert_free); + key = nm_utils_str_utf8safe_unescape (key, &key_free); + + if ( ca && strlen (ca) + && cert && strlen (cert) + && key && strlen (key) + && !strcmp (ca, cert) + && !strcmp (ca, key)) { + add_openvpn_arg (args, "--pkcs12"); + add_openvpn_arg (args, ca); + } else { + if (ca && strlen (ca)) { + add_openvpn_arg (args, "--ca"); + add_openvpn_arg (args, ca); + } + + if (cert && strlen (cert)) { + add_openvpn_arg (args, "--cert"); + add_openvpn_arg (args, cert); + } + + if (key && strlen (key)) { + add_openvpn_arg (args, "--key"); + add_openvpn_arg (args, key); + } + } +} + +static void +update_io_data_from_vpn_setting (NMOpenvpnPluginIOData *io_data, + NMSettingVpn *s_vpn, + const char *default_username) +{ + const char *tmp; + + if (default_username) { + g_free (io_data->default_username); + io_data->default_username = g_strdup (default_username); + } + + g_free (io_data->username); + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_USERNAME); + io_data->username = tmp ? g_strdup (tmp) : NULL; + + if (io_data->password) { + memset (io_data->password, 0, strlen (io_data->password)); + g_free (io_data->password); + } + tmp = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD); + io_data->password = tmp ? g_strdup (tmp) : NULL; + + if (io_data->priv_key_pass) { + memset (io_data->priv_key_pass, 0, strlen (io_data->priv_key_pass)); + g_free (io_data->priv_key_pass); + } + tmp = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS); + io_data->priv_key_pass = tmp ? g_strdup (tmp) : NULL; + + g_free (io_data->proxy_username); + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME); + io_data->proxy_username = tmp ? g_strdup (tmp) : NULL; + + if (io_data->proxy_password) { + memset (io_data->proxy_password, 0, strlen (io_data->proxy_password)); + g_free (io_data->proxy_password); + } + tmp = nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD); + io_data->proxy_password = tmp ? g_strdup (tmp) : NULL; +} + +static char * +mgt_path_create (NMConnection *connection, GError **error) +{ + int errsv; + + /* Setup runtime directory */ + if (g_mkdir_with_parents (RUNDIR, 0755) != 0) { + errsv = errno; + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + "Cannot create run-dir %s (%s)", + RUNDIR, g_strerror (errsv)); + return NULL; + } + + return g_strdup_printf (RUNDIR"/nm-openvpn-%s", + nm_connection_get_uuid (connection)); +} + +#define MAX_GROUPS 128 +static gboolean +is_dir_writable (const char *dir, const char *user) +{ + struct stat sb; + struct passwd *pw; + + if (stat (dir, &sb) == -1) + return FALSE; + pw = getpwnam (user); + if (!pw) + return FALSE; + + if (pw->pw_uid == 0) + return TRUE; + + if (sb.st_mode & S_IWOTH) + return TRUE; + else if (sb.st_mode & S_IWGRP) { + /* Group has write access. Is user in that group? */ + int i, ngroups = MAX_GROUPS; + gid_t groups[MAX_GROUPS]; + + getgrouplist (user, pw->pw_gid, groups, &ngroups); + for (i = 0; i < ngroups && i < MAX_GROUPS; i++) { + if (groups[i] == sb.st_gid) + return TRUE; + } + } else if (sb.st_mode & S_IWUSR) { + /* The owner has write access. Does the user own the file? */ + if (pw->pw_uid == sb.st_uid) + return TRUE; + } + return FALSE; +} + +/* Check existence of 'tmp' directory inside @chdir + * and write access in @chdir and @chdir/tmp for @user. + */ +static gboolean +check_chroot_dir_usability (const char *chdir, const char *user) +{ + char *tmp_dir; + gboolean b1, b2; + + tmp_dir = g_strdup_printf ("%s/tmp", chdir); + if (!g_file_test (tmp_dir, G_FILE_TEST_IS_DIR)) { + g_free (tmp_dir); + return FALSE; + } + + b1 = is_dir_writable (chdir, user); + b2 = is_dir_writable (tmp_dir, user); + g_free (tmp_dir); + return b1 && b2; +} + +static gboolean +nm_openvpn_start_openvpn_binary (NMOpenvpnPlugin *plugin, + NMConnection *connection, + GError **error) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + const char *openvpn_binary, *auth, *tmp, *tmp2, *tmp3, *tmp4; + gs_unref_ptrarray GPtrArray *args = NULL; + GPid pid; + gboolean dev_type_is_tap; + char *stmp; + const char *defport, *proto_tcp; + const char *tls_remote = NULL; + const char *nm_openvpn_user, *nm_openvpn_group, *nm_openvpn_chroot; + gs_free char *bus_name = NULL; + NMSettingVpn *s_vpn; + const char *connection_type; + gint64 v_int64; + char sbuf_64[65]; + OpenvpnBinaryVersion openvpn_binary_version = OPENVPN_BINARY_VERSION_INVALID; + + s_vpn = nm_connection_get_setting_vpn (connection); + if (!s_vpn) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION, + _("Could not process the request because the VPN connection settings were invalid.")); + return FALSE; + } + + connection_type = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE); + if (!validate_connection_type (connection_type)) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid connection type.")); + return FALSE; + } + + /* Validate the properties */ + if (!nm_openvpn_properties_validate (s_vpn, error)) + return FALSE; + + /* Validate secrets */ + if (!nm_openvpn_secrets_validate (s_vpn, error)) + return FALSE; + + /* Find openvpn */ + openvpn_binary = openvpn_binary_find_exepath (); + if (!openvpn_binary) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Could not find the openvpn binary.")); + return FALSE; + } + + auth = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_AUTH); + if (auth) { + if (!validate_auth(auth)) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid HMAC auth.")); + return FALSE; + } + } + + args = g_ptr_array_new_with_free_func (g_free); + + add_openvpn_arg (args, openvpn_binary); + + defport = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PORT); + if (defport && !defport[0]) + defport = NULL; + + proto_tcp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROTO_TCP); + if (proto_tcp && !proto_tcp[0]) + proto_tcp = NULL; + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE); + if (tmp && *tmp) { + gs_free char *tmp_clone = NULL; + char *tmp_remaining; + const char *tok; + + tmp_remaining = tmp_clone = g_strdup (tmp); + while ((tok = strsep (&tmp_remaining, " \t,")) != NULL) { + gs_free char *str_free = NULL; + const char *host, *port, *proto; + gssize eidx; + + eidx = nmovpn_remote_parse (tok, + &str_free, + &host, + &port, + &proto, + NULL); + if (eidx >= 0) + continue; + + add_openvpn_arg (args, "--remote"); + add_openvpn_arg (args, host); + if (port) { + if (!add_openvpn_arg_int (args, port)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid port number “%s”."), port); + return FALSE; + } + } else if (defport) { + if (!add_openvpn_arg_int (args, defport)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid port number “%s”."), + defport); + return FALSE; + } + } else + add_openvpn_arg (args, "1194"); /* default IANA port */ + + if (proto) { + if (nm_streq (proto, "tcp")) + add_openvpn_arg (args, "tcp-client"); + else if (nm_streq (proto, "tcp4")) + add_openvpn_arg (args, "tcp4-client"); + else if (nm_streq (proto, "tcp6")) + add_openvpn_arg (args, "tcp6-client"); + else if (NM_IN_STRSET (proto, NMOVPN_PROTCOL_TYPES)) + add_openvpn_arg (args, proto); + else { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid proto “%s”."), proto); + return FALSE; + } + } else if (proto_tcp && !strcmp (proto_tcp, "yes")) + add_openvpn_arg (args, "tcp-client"); + else + add_openvpn_arg (args, "udp"); + } + } + + /* Remote random */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM); + if (tmp && !strcmp (tmp, "yes")) + add_openvpn_arg (args, "--remote-random"); + + /* tun-ipv6 */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TUN_IPV6); + if (tmp && !strcmp (tmp, "yes")) + add_openvpn_arg (args, "--tun-ipv6"); + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_TYPE); + tmp2 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_SERVER); + tmp3 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_PORT); + tmp4 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PROXY_RETRY); + if (tmp && strlen (tmp) && tmp2 && strlen (tmp2)) { + if (!strcmp (tmp, "http")) { + add_openvpn_arg (args, "--http-proxy"); + add_openvpn_arg (args, tmp2); + add_openvpn_arg (args, tmp3 ? tmp3 : "8080"); + add_openvpn_arg (args, "auto"); /* Automatic proxy auth method detection */ + if (tmp4) + add_openvpn_arg (args, "--http-proxy-retry"); + } else if (!strcmp (tmp, "socks")) { + add_openvpn_arg (args, "--socks-proxy"); + add_openvpn_arg (args, tmp2); + add_openvpn_arg (args, tmp3 ? tmp3 : "1080"); + if (tmp4) + add_openvpn_arg (args, "--socks-proxy-retry"); + } else { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid proxy type “%s”."), + tmp); + return FALSE; + } + } + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_COMP_LZO); + + /* openvpn understands 4 different modes for --comp-lzo, which have + * different meaning: + * 1) no --comp-lzo option + * 2) --comp-lzo yes + * 3) --comp-lzo [adaptive] + * 4) --comp-lzo no + * + * In the past, nm-openvpn only supported 1) and 2) by having no + * comp-lzo connection setting or "comp-lzo=yes", respectively. + * + * However, old plasma-nm would set "comp-lzo=no" in the connection + * to mean 1). Thus, "comp-lzo=no" is spoiled to mean 4) in order + * to preserve backward compatibily. + * We use instead a special value "no-by-default" to express "no". + * + * See bgo#769177 + */ + if (NM_IN_STRSET (tmp, "no")) { + /* means no --comp-lzo option. */ + tmp = NULL; + } else if (NM_IN_STRSET (tmp, "no-by-default")) + tmp = "no"; + + if (NM_IN_STRSET (tmp, "yes", "no", "adaptive")) { + add_openvpn_arg (args, "--comp-lzo"); + add_openvpn_arg (args, tmp); + } + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_FLOAT); + if (tmp && !strcmp (tmp, "yes")) + add_openvpn_arg (args, "--float"); + + /* ping, ping-exit, ping-restart */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PING); + if (tmp) { + add_openvpn_arg (args, "--ping"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid ping duration “%s”."), + tmp); + return FALSE; + } + } + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PING_EXIT); + if (tmp) { + add_openvpn_arg (args, "--ping-exit"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid ping-exit duration “%s”."), + tmp); + return FALSE; + } + } + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_PING_RESTART); + if (tmp) { + add_openvpn_arg (args, "--ping-restart"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid ping-restart duration “%s”."), + tmp); + return FALSE; + } + } + + add_openvpn_arg (args, "--nobind"); + + /* max routes allowed from openvpn server */ + tmp = nm_setting_vpn_get_data_item(s_vpn, NM_OPENVPN_KEY_MAX_ROUTES); + if (tmp) { + /* max-routes option is deprecated in 2.4 release + * https://github.com/OpenVPN/openvpn/commit/d0085293e709c8a722356cfa68ad74c962aef9a2 + */ + add_openvpn_arg (args, "--max-routes"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid max-routes argument “%s”."), + tmp); + return FALSE; + } + } + + /* Device and device type, defaults to tun */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV); + tmp2 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_DEV_TYPE); + tmp3 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TAP_DEV); + add_openvpn_arg (args, "--dev"); + if (tmp) { + const char *tmp_unescaped; + + tmp_unescaped = add_openvpn_arg_utf8safe (args, tmp); + dev_type_is_tap = g_str_has_prefix (tmp_unescaped, "tap"); + } else if (tmp2) { + add_openvpn_arg (args, tmp2); + dev_type_is_tap = FALSE; /* will be reset below (avoid maybe-uninitialized warning) */ + } else if (tmp3 && !strcmp (tmp3, "yes")) { + add_openvpn_arg (args, "tap"); + dev_type_is_tap = TRUE; + } else { + add_openvpn_arg (args, "tun"); + dev_type_is_tap = FALSE; + } + + /* Add '--dev-type' if the type was explicitly set */ + if (tmp2) { + add_openvpn_arg (args, "--dev-type"); + add_openvpn_arg (args, tmp2); + dev_type_is_tap = (strcmp (tmp2, "tap") == 0); + } + + /* Cipher */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CIPHER); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--cipher"); + add_openvpn_arg (args, tmp); + } + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TLS_CIPHER); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--tls-cipher"); + add_openvpn_arg (args, tmp); + } + + /* Keysize */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEYSIZE); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--keysize"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid keysize “%s”."), + tmp); + return FALSE; + } + } + + /* Auth */ + if (auth) { + add_openvpn_arg (args, "--auth"); + add_openvpn_arg (args, auth); + } + add_openvpn_arg (args, "--auth-nocache"); + + /* tls-auth */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TA); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--tls-auth"); + add_openvpn_arg_utf8safe (args, tmp); + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TA_DIR); + if (tmp && tmp[0]) + add_openvpn_arg (args, tmp); + } + + /* tls-crypt */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TLS_CRYPT); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--tls-crypt"); + add_openvpn_arg_utf8safe (args, tmp); + } + + + /* tls-remote */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TLS_REMOTE); + if (tmp && tmp[0]) { + if (openvpn_binary_detect_version_cached (openvpn_binary, &openvpn_binary_version) != OPENVPN_BINARY_VERSION_2_4_OR_NEWER) { + _LOGW ("the tls-remote option is deprecated and removed from OpenVPN 2.4. Update your connection to use verify-x509-name"); + add_openvpn_arg (args, "--tls-remote"); + add_openvpn_arg (args, tmp); + } else { + _LOGW ("the tls-remote option is deprecated and removed from OpenVPN 2.4. For compatibility, the plugin uses \"verify-x509-name\" \"%s\" \"name\" instead. Update your connection to use verify-x509-name", tmp); + add_openvpn_arg (args, "--verify-x509-name"); + add_openvpn_arg (args, tmp); + add_openvpn_arg (args, "name"); + } + tls_remote = tmp; + } + + /* verify-x509-name */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_VERIFY_X509_NAME); + if (tmp && tmp[0]) { + const char *name; + gs_free char *type = NULL; + + if (tls_remote) { + g_set_error (error, NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid configuration with tls-remote and verify-x509-name.")); + return FALSE; + } + + name = strchr (tmp, ':'); + if (name) { + type = g_strndup (tmp, name - tmp); + name++; + } else + name = tmp; + + if (!name[0] || !g_utf8_validate(name, -1, NULL)) { + g_set_error (error, NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid verify-x509-name.")); + return FALSE; + } + + add_openvpn_arg (args, "--verify-x509-name"); + add_openvpn_arg (args, name); + add_openvpn_arg (args, type ?: "subject"); + } + + /* remote-cert-tls */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_CERT_TLS); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--remote-cert-tls"); + add_openvpn_arg (args, tmp); + } + + /* ns-cert-type */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_NS_CERT_TYPE); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--ns-cert-type"); + add_openvpn_arg (args, tmp); + } + + /* Reneg seconds */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_RENEG_SECONDS); + if (!connection_type_is_tls_mode (connection_type)) { + /* Ignore --reneg-sec option if we are not in TLS mode (as enabled + * by --client below). openvpn will error out otherwise, see bgo#749050. */ + } else if (tmp && tmp[0]) { + add_openvpn_arg (args, "--reneg-sec"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid reneg seconds “%s”."), + tmp); + return FALSE; + } + } else { + /* Either the server and client must agree on the renegotiation + * interval, or it should be disabled on one side to prevent + * too-frequent renegotiations, which make two-factor auth quite + * painful. + */ + add_openvpn_arg (args, "--reneg-sec"); + add_openvpn_arg (args, "0"); + } + + if (gl.log_level_ovpn >= 0) { + add_openvpn_arg (args, "--verb"); + add_openvpn_arg (args, nm_sprintf_buf (sbuf_64, "%d", gl.log_level_ovpn)); + } + + if (gl.log_syslog) { + add_openvpn_arg (args, "--syslog"); + add_openvpn_arg (args, "nm-openvpn"); + } + + /* TUN MTU size */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TUNNEL_MTU); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--tun-mtu"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid TUN MTU size “%s”."), + tmp); + return FALSE; + } + } + + /* fragment size */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_FRAGMENT_SIZE); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--fragment"); + if (!add_openvpn_arg_int (args, tmp)) { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid fragment size “%s”."), + tmp); + return FALSE; + } + } + + /* mssfix */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_MSSFIX); + if (tmp) { + if (nm_streq (tmp, "yes")) + add_openvpn_arg (args, "--mssfix"); + else if ((v_int64 = _nm_utils_ascii_str_to_int64 (tmp, 10, 1, G_MAXINT32, 0))) { + add_openvpn_arg (args, "--mssfix"); + add_openvpn_arg (args, nm_sprintf_buf (sbuf_64, "%d", (int) v_int64)); + } + } + + /* mtu-disc */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_MTU_DISC); + if (NM_IN_STRSET (tmp, "no", "maybe", "yes")) { + add_openvpn_arg (args, "--mtu-disc"); + add_openvpn_arg (args, tmp); + } + + /* ifconfig */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_LOCAL_IP); + tmp2 = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_IP); + if (tmp && tmp2) { + add_openvpn_arg (args, "--ifconfig"); + add_openvpn_arg (args, tmp); + add_openvpn_arg (args, tmp2); + } + + /* Punch script security in the face; this option was added to OpenVPN 2.1-rc9 + * and defaults to disallowing any scripts, a behavior change from previous + * versions. + */ + add_openvpn_arg (args, "--script-security"); + add_openvpn_arg (args, "2"); + + /* Up script, called when connection has been established or has been restarted */ + add_openvpn_arg (args, "--up"); + g_object_get (plugin, NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, &bus_name, NULL); + stmp = g_strdup_printf ("%s --debug %d %ld --bus-name %s %s --", + NM_OPENVPN_HELPER_PATH, + gl.log_level, (long) getpid(), + bus_name, + dev_type_is_tap ? "--tap" : "--tun"); + add_openvpn_arg (args, stmp); + g_free (stmp); + add_openvpn_arg (args, "--up-restart"); + + /* Keep key and tun if restart is needed */ + add_openvpn_arg (args, "--persist-key"); + add_openvpn_arg (args, "--persist-tun"); + + /* Management socket for localhost access to supply username and password */ + g_clear_pointer (&priv->mgt_path, g_free); + priv->mgt_path = mgt_path_create (connection, error); + if (!priv->mgt_path) + return FALSE; + add_openvpn_arg (args, "--management"); + add_openvpn_arg (args, priv->mgt_path); + add_openvpn_arg (args, "unix"); + add_openvpn_arg (args, "--management-client-user"); + add_openvpn_arg (args, "root"); + add_openvpn_arg (args, "--management-client-group"); + add_openvpn_arg (args, "root"); + + /* Query on the management socket for user/pass */ + add_openvpn_arg (args, "--management-query-passwords"); + add_openvpn_arg (args, "--auth-retry"); + add_openvpn_arg (args, "interact"); + + /* do not let openvpn setup routes or addresses, NM will handle it */ + add_openvpn_arg (args, "--route-noexec"); + add_openvpn_arg (args, "--ifconfig-noexec"); + + /* Now append configuration options which are dependent on the configuration type */ + if (!strcmp (connection_type, NM_OPENVPN_CONTYPE_TLS)) { + add_openvpn_arg (args, "--client"); + add_cert_args (args, s_vpn); + } else if (!strcmp (connection_type, NM_OPENVPN_CONTYPE_STATIC_KEY)) { + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--secret"); + add_openvpn_arg_utf8safe (args, tmp); + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_STATIC_KEY_DIRECTION); + if (tmp && tmp[0]) + add_openvpn_arg (args, tmp); + } + } else if (!strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD)) { + /* Client mode */ + add_openvpn_arg (args, "--client"); + /* Use user/path authentication */ + add_openvpn_arg (args, "--auth-user-pass"); + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CA); + if (tmp && tmp[0]) { + add_openvpn_arg (args, "--ca"); + add_openvpn_arg_utf8safe (args, tmp); + } + } else if (!strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + add_openvpn_arg (args, "--client"); + add_cert_args (args, s_vpn); + /* Use user/path authentication */ + add_openvpn_arg (args, "--auth-user-pass"); + } else { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Unknown connection type “%s”."), + connection_type); + return FALSE; + } + + /* Allow openvpn to be run as a specified user:group. + * + * We do this by default. The only way to disable it is by setting + * empty environment variables NM_OPENVPN_USER and NM_OPENVPN_GROUP. */ + nm_openvpn_user = getenv ("NM_OPENVPN_USER") ?: NM_OPENVPN_USER; + nm_openvpn_group = getenv ("NM_OPENVPN_GROUP") ?: NM_OPENVPN_GROUP; + if (*nm_openvpn_user) { + if (getpwnam (nm_openvpn_user)) { + add_openvpn_arg (args, "--user"); + add_openvpn_arg (args, nm_openvpn_user); + } else { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("User “%s” not found, check NM_OPENVPN_USER."), + nm_openvpn_user); + return FALSE; + } + } + if (*nm_openvpn_group) { + if (getgrnam (nm_openvpn_group)) { + add_openvpn_arg (args, "--group"); + add_openvpn_arg (args, nm_openvpn_group); + } else { + g_set_error (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Group “%s” not found, check NM_OPENVPN_GROUP."), + nm_openvpn_group); + return FALSE; + } + } + + /* we try to chroot be default. The only way to disable that is by + * setting the an empty environment variable NM_OPENVPN_CHROOT. */ + nm_openvpn_chroot = getenv ("NM_OPENVPN_CHROOT") ?: NM_OPENVPN_CHROOT; + if (*nm_openvpn_chroot) { + if (check_chroot_dir_usability (nm_openvpn_chroot, nm_openvpn_user)) { + add_openvpn_arg (args, "--chroot"); + add_openvpn_arg (args, nm_openvpn_chroot); + } else + _LOGW ("Directory '%s' not usable for chroot by '%s', openvpn will not be chrooted.", + nm_openvpn_chroot, nm_openvpn_user); + } + + g_ptr_array_add (args, NULL); + + { + gs_free char *cmd = NULL; + + _LOGD ("EXEC: '%s'", (cmd = g_strjoinv (" ", (char **) args->pdata))); + } + + if (!g_spawn_async (NULL, (char **) args->pdata, NULL, + G_SPAWN_DO_NOT_REAP_CHILD, NULL, NULL, &pid, error)) + return FALSE; + + pids_pending_add (pid, plugin); + + g_warn_if_fail (!priv->pid); + priv->pid = pid; + + /* Listen to the management socket for a few connection types: + PASSWORD: Will require username and password + X509USERPASS: Will require username and password and maybe certificate password + X509: May require certificate password + */ + if ( !strcmp (connection_type, NM_OPENVPN_CONTYPE_TLS) + || !strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD) + || !strcmp (connection_type, NM_OPENVPN_CONTYPE_PASSWORD_TLS) + || nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME)) { + + priv->io_data = g_malloc0 (sizeof (NMOpenvpnPluginIOData)); + update_io_data_from_vpn_setting (priv->io_data, s_vpn, + nm_setting_vpn_get_user_name (s_vpn)); + nm_openvpn_schedule_connect_timer (plugin); + } + + return TRUE; +} + +static const char * +check_need_secrets (NMSettingVpn *s_vpn, gboolean *need_secrets) +{ + const char *tmp, *key, *ctype; + NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE; + gs_free char *key_free = NULL; + + g_return_val_if_fail (s_vpn != NULL, FALSE); + g_return_val_if_fail (need_secrets != NULL, FALSE); + + *need_secrets = FALSE; + + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_CONNECTION_TYPE); + ctype = validate_connection_type (tmp); + if (!ctype) + return NULL; + + if (!strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD_TLS)) { + /* Will require a password and maybe private key password */ + key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + key = nm_utils_str_utf8safe_unescape (key, &key_free); + if (is_encrypted (key) && !nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS)) + *need_secrets = TRUE; + + if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD)) { + *need_secrets = TRUE; + if (nm_setting_get_secret_flags (NM_SETTING (s_vpn), NM_OPENVPN_KEY_PASSWORD, &secret_flags, NULL)) { + if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) + *need_secrets = FALSE; + } + } + } else if (!strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD)) { + /* Will require a password */ + if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD)) { + *need_secrets = TRUE; + if (nm_setting_get_secret_flags (NM_SETTING (s_vpn), NM_OPENVPN_KEY_PASSWORD, &secret_flags, NULL)) { + if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED) + *need_secrets = FALSE; + } + } + } else if (!strcmp (ctype, NM_OPENVPN_CONTYPE_TLS)) { + /* May require private key password */ + key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY); + key = nm_utils_str_utf8safe_unescape (key, &key_free); + if (is_encrypted (key) && !nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS)) + *need_secrets = TRUE; + } else { + /* Static key doesn't need passwords */ + } + + /* HTTP Proxy might require a password; assume so if there's an HTTP proxy username */ + tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_USERNAME); + if (tmp && !nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_HTTP_PROXY_PASSWORD)) + *need_secrets = TRUE; + + return ctype; +} + +static gboolean +real_disconnect (NMVpnServicePlugin *plugin, + GError **err) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + + if (priv->mgt_path) { + /* openvpn does not cleanup the management socket upon exit, + * possibly it could not even because it changed user */ + (void) unlink (priv->mgt_path); + g_clear_pointer (&priv->mgt_path, g_free); + } + + if (priv->pid) { + pids_pending_send_sigterm (priv->pid); + priv->pid = 0; + } + + return TRUE; +} + +static gboolean +_connect_common (NMVpnServicePlugin *plugin, + NMConnection *connection, + GVariant *details, + GError **error) +{ + GError *local = NULL; + + if (!real_disconnect (plugin, &local)) { + _LOGW ("Could not clean up previous daemon run: %s", local->message); + g_error_free (local); + } + + return nm_openvpn_start_openvpn_binary (NM_OPENVPN_PLUGIN (plugin), + connection, + error); +} + +static gboolean +real_connect (NMVpnServicePlugin *plugin, + NMConnection *connection, + GError **error) +{ + return _connect_common (plugin, connection, NULL, error); +} + +static gboolean +real_connect_interactive (NMVpnServicePlugin *plugin, + NMConnection *connection, + GVariant *details, + GError **error) +{ + if (!_connect_common (plugin, connection, details, error)) + return FALSE; + + NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin)->interactive = TRUE; + return TRUE; +} + +static gboolean +real_need_secrets (NMVpnServicePlugin *plugin, + NMConnection *connection, + const char **setting_name, + GError **error) +{ + NMSettingVpn *s_vpn; + const char *connection_type; + gboolean need_secrets = FALSE; + + g_return_val_if_fail (NM_IS_VPN_SERVICE_PLUGIN (plugin), FALSE); + g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE); + + if (_LOGD_enabled ()) { + _LOGD ("connection -------------------------------------"); + nm_connection_dump (connection); + } + + s_vpn = nm_connection_get_setting_vpn (connection); + if (!s_vpn) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION, + _("Could not process the request because the VPN connection settings were invalid.")); + return FALSE; + } + + connection_type = check_need_secrets (s_vpn, &need_secrets); + if (!connection_type) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS, + _("Invalid connection type.")); + return FALSE; + } + + if (need_secrets) + *setting_name = NM_SETTING_VPN_SETTING_NAME; + + return need_secrets; +} + +static gboolean +real_new_secrets (NMVpnServicePlugin *plugin, + NMConnection *connection, + GError **error) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + NMSettingVpn *s_vpn; + const char *message = NULL; + char **hints = NULL; + + s_vpn = nm_connection_get_setting_vpn (connection); + if (!s_vpn) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_INVALID_CONNECTION, + _("Could not process the request because the VPN connection settings were invalid.")); + return FALSE; + } + + _LOGD ("VPN received new secrets; sending to management interface"); + + update_io_data_from_vpn_setting (priv->io_data, s_vpn, NULL); + + g_warn_if_fail (priv->io_data->pending_auth); + if (!handle_auth (priv->io_data, priv->io_data->pending_auth, &message, &hints)) { + g_set_error_literal (error, + NM_VPN_PLUGIN_ERROR, + NM_VPN_PLUGIN_ERROR_FAILED, + _("Unhandled pending authentication.")); + return FALSE; + } + + /* Request new secrets if we need any */ + if (message) { + _LOGD ("Requesting new secrets: '%s'", message); + nm_vpn_service_plugin_secrets_required (plugin, message, (const char **) hints); + } + if (hints) + g_free (hints); /* elements are 'const' */ + return TRUE; +} + +static void +nm_openvpn_plugin_init (NMOpenvpnPlugin *plugin) +{ +} + +static void +dispose (GObject *object) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (object); + + nm_clear_g_source (&priv->connect_timer); + + if (priv->pid) { + pids_pending_send_sigterm (priv->pid); + priv->pid = 0; + } + + G_OBJECT_CLASS (nm_openvpn_plugin_parent_class)->dispose (object); +} + +static void +nm_openvpn_plugin_class_init (NMOpenvpnPluginClass *plugin_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (plugin_class); + NMVpnServicePluginClass *parent_class = NM_VPN_SERVICE_PLUGIN_CLASS (plugin_class); + + g_type_class_add_private (object_class, sizeof (NMOpenvpnPluginPrivate)); + + object_class->dispose = dispose; + + /* virtual methods */ + parent_class->connect = real_connect; + parent_class->connect_interactive = real_connect_interactive; + parent_class->need_secrets = real_need_secrets; + parent_class->disconnect = real_disconnect; + parent_class->new_secrets = real_new_secrets; +} + +static void +plugin_state_changed (NMOpenvpnPlugin *plugin, + NMVpnServiceState state, + gpointer user_data) +{ + NMOpenvpnPluginPrivate *priv = NM_OPENVPN_PLUGIN_GET_PRIVATE (plugin); + + switch (state) { + case NM_VPN_SERVICE_STATE_UNKNOWN: + case NM_VPN_SERVICE_STATE_INIT: + case NM_VPN_SERVICE_STATE_SHUTDOWN: + case NM_VPN_SERVICE_STATE_STOPPING: + case NM_VPN_SERVICE_STATE_STOPPED: + /* Cleanup on failure */ + nm_clear_g_source (&priv->connect_timer); + nm_openvpn_disconnect_management_socket (plugin); + break; + default: + break; + } +} + +NMOpenvpnPlugin * +nm_openvpn_plugin_new (const char *bus_name) +{ + NMOpenvpnPlugin *plugin; + GError *error = NULL; + + plugin = (NMOpenvpnPlugin *) g_initable_new (NM_TYPE_OPENVPN_PLUGIN, NULL, &error, + NM_VPN_SERVICE_PLUGIN_DBUS_SERVICE_NAME, bus_name, + NM_VPN_SERVICE_PLUGIN_DBUS_WATCH_PEER, !gl.debug, + NULL); + + if (plugin) { + g_signal_connect (G_OBJECT (plugin), "state-changed", G_CALLBACK (plugin_state_changed), NULL); + } else { + _LOGW ("Failed to initialize a plugin instance: %s", error->message); + g_error_free (error); + } + + return plugin; +} + +static gboolean +signal_handler (gpointer user_data) +{ + g_main_loop_quit (user_data); + return G_SOURCE_REMOVE; +} + +static void +quit_mainloop (NMVpnServicePlugin *plugin, gpointer user_data) +{ + g_main_loop_quit ((GMainLoop *) user_data); +} + +int +main (int argc, char *argv[]) +{ + NMOpenvpnPlugin *plugin; + gboolean persist = FALSE; + GOptionContext *opt_ctx = NULL; + gchar *bus_name = NM_DBUS_SERVICE_OPENVPN; + GError *error = NULL; + GMainLoop *loop; + + GOptionEntry options[] = { + { "persist", 0, 0, G_OPTION_ARG_NONE, &persist, N_("Don’t quit when VPN connection terminates"), NULL }, + { "debug", 0, 0, G_OPTION_ARG_NONE, &gl.debug, N_("Enable verbose debug logging (may expose passwords)"), NULL }, + { "bus-name", 0, 0, G_OPTION_ARG_STRING, &bus_name, N_("D-Bus name to use for this instance"), NULL }, + {NULL} + }; + +#if !GLIB_CHECK_VERSION (2, 35, 0) + g_type_init (); +#endif + + if (getenv ("OPENVPN_DEBUG")) + gl.debug = TRUE; + + /* locale will be set according to environment LC_* variables */ + setlocale (LC_ALL, ""); + + bindtextdomain (GETTEXT_PACKAGE, NM_OPENVPN_LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + /* Parse options */ + opt_ctx = g_option_context_new (NULL); + g_option_context_set_translation_domain (opt_ctx, GETTEXT_PACKAGE); + g_option_context_set_ignore_unknown_options (opt_ctx, FALSE); + g_option_context_set_help_enabled (opt_ctx, TRUE); + g_option_context_add_main_entries (opt_ctx, options, NULL); + + g_option_context_set_summary (opt_ctx, + _("nm-openvpn-service provides integrated " + "OpenVPN capability to NetworkManager.")); + + if (!g_option_context_parse (opt_ctx, &argc, &argv, &error)) { + g_printerr ("Error parsing the command line options: %s\n", error->message); + g_option_context_free (opt_ctx); + g_clear_error (&error); + exit (1); + } + g_option_context_free (opt_ctx); + + gl.log_level = _nm_utils_ascii_str_to_int64 (getenv ("NM_VPN_LOG_LEVEL"), + 10, 0, LOG_DEBUG, -1); + if (gl.log_level >= 0) { + if (gl.log_level >= LOG_DEBUG) + gl.log_level_ovpn = 10; + else if (gl.log_level >= LOG_INFO) + gl.log_level_ovpn = 5; + else if (gl.log_level > 0) + gl.log_level_ovpn = 2; + else + gl.log_level_ovpn = 1; + } else if (gl.debug) + gl.log_level_ovpn = 10; + else { + /* the default level is already "--verb 1", which is fine for us. */ + gl.log_level_ovpn = -1; + } + + if (gl.log_level < 0) + gl.log_level = gl.debug ? LOG_INFO : LOG_NOTICE; + + gl.log_syslog = _nm_utils_ascii_str_to_int64 (getenv ("NM_VPN_LOG_SYSLOG"), + 10, 0, 1, + gl.debug ? 0 : 1); + + _LOGD ("nm-openvpn-service (version " DIST_VERSION ") starting..."); + + if ( !g_file_test ("/sys/class/misc/tun", G_FILE_TEST_EXISTS) + && (system ("/sbin/modprobe tun") == -1)) + exit (EXIT_FAILURE); + + plugin = nm_openvpn_plugin_new (bus_name); + if (!plugin) + exit (EXIT_FAILURE); + + loop = g_main_loop_new (NULL, FALSE); + + if (!persist) + g_signal_connect (plugin, "quit", G_CALLBACK (quit_mainloop), loop); + + signal (SIGPIPE, SIG_IGN); + g_unix_signal_add (SIGTERM, signal_handler, loop); + g_unix_signal_add (SIGINT, signal_handler, loop); + + g_main_loop_run (loop); + g_object_unref (plugin); + + pids_pending_wait_for_processes (loop); + + g_main_loop_unref (loop); + + exit (EXIT_SUCCESS); +}