[
  {
    "path": "AUTHORS",
    "content": "Stephen Brandt <stephen@stephenbrandt.com>"
  },
  {
    "path": "INSTALL.md",
    "content": "\n  Building & Installing Haguichi\n  ==============================\n\n\n  Dependencies\n  ------------\n\n  The following development packages are required to build Haguichi:\n\n   * gettext\n   * meson (>= 1.3.0)\n   * valac (>= 0.56)\n   * gee-0.8 (>= 0.20.6)\n   * glib-2.0 (>= 2.80)\n   * gtk4 (>= 4.14)\n   * libadwaita-1 (>= 1.5)\n   * libportal (>= 0.7.1)\n   * libportal-gtk4 (>= 0.7.1)\n\n  On **Debian based distributions** you can install these packages by running the following command:\n\n    $ sudo apt install build-essential gettext meson valac libgee-0.8-dev libglib2.0-dev libgtk-4-dev libadwaita-1-dev libportal-dev libportal-gtk4-dev\n\n\n  On **Fedora** you can install these packages by running the following command:\n\n    $ sudo dnf install gettext meson vala libgee-devel gtk4-devel libadwaita-devel libportal-devel libportal-gtk4-devel\n\n\n  Build options\n  -------------\n\n  **for-elementary**\n\n  This option enables elementary OS integration and additionally requires the *granite-7* development package.\n\n    $ meson configure -Dfor-elementary=true\n\n\n  **for-ubuntu**\n\n  This option enables Ubuntu integration by installing Yaru style application icons.\n\n    $ meson configure -Dfor-ubuntu=true\n\n\n  Building\n  --------\n\n  To build Haguichi, run the following commands:\n\n    $ mkdir build && cd build\n    $ meson setup ..\n    $ ninja\n\n\n  Installing\n  ----------\n\n  After Haguichi has been built, run the following command to install it:\n\n    $ sudo ninja install\n\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<https://www.gnu.org/licenses/why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)\n[![Translation status](https://hosted.weblate.org/widget/haguichi/svg-badge.svg)](https://hosted.weblate.org/engage/haguichi/)\n\n<div align=\"center\">\n  <h1>\n    <img src=\"data/icons/hicolor/scalable/apps/com.github.ztefn.haguichi.svg?raw=true\" alt=\"Haguichi logo\" width=\"128\" /><br />\n    Haguichi\n  </h1>\n  <h4>Provides a graphical frontend for Hamachi on Linux</h4>\n  <img src=\"https://haguichi.net/appdata/screenshot-1.png\" alt=\"Screenshot\" width=\"704\" />\n</div>\n\n\n  Links\n  -----\n\n   * [Homepage](https://haguichi.net)\n   * [Download](https://haguichi.net/download/)\n   * [Bug tracker](https://github.com/ztefn/haguichi/issues)\n\n\n  Features\n  --------\n\n   * Searchable, sortable and collapsible network list\n   * Sidebar for easy access to details and actions\n   * Indicator support for quick access to primary actions\n   * Desktop notifications to stay up to date of network events\n   * Commands that can be completely customized\n   * Backup and restore of your Hamachi configuration folder\n\n\n  Translations\n  ------------\n\n  You can help translate Haguichi via [Weblate](https://hosted.weblate.org/engage/haguichi/) or by using your favorite PO file editor and then opening a [pull request](https://github.com/ztefn/haguichi/pulls) to merge your changes.\n\n\n  Donations\n  ---------\n\n  Support development by making a donation! You can donate any amount you wish via [PayPal](https://www.paypal.me/ztefn).\n\n\n  License\n  -------\n\n  Copyright © 2007–2026 Stephen Brandt\n\n  Haguichi 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 3 of the License, or (at your option) any later version.\n\n  Haguichi 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.\n\n"
  },
  {
    "path": "com.github.ztefn.haguichi.json",
    "content": "{\n    \"app-id\": \"com.github.ztefn.haguichi\",\n    \"runtime\": \"org.gnome.Platform\",\n    \"runtime-version\": \"50\",\n    \"sdk\": \"org.gnome.Sdk\",\n    \"sdk-extensions\": [\n        \"org.freedesktop.Sdk.Extension.vala\"\n    ],\n    \"build-options\": {\n        \"append-path\": \"/usr/lib/sdk/vala/bin\",\n        \"prepend-ld-library-path\": \"/usr/lib/sdk/vala/lib\"\n    },\n    \"command\": \"haguichi\",\n    \"finish-args\": [\n        \"--device=dri\",\n\n        \"--filesystem=/var/lib/logmein-hamachi:ro\",\n\n        \"--system-talk-name=org.freedesktop.login1\",\n\n        \"--talk-name=org.freedesktop.Flatpak\",\n        \"--talk-name=org.kde.StatusNotifierWatcher\",\n\n        \"--share=network\",\n        \"--share=ipc\",\n\n        \"--socket=fallback-x11\",\n        \"--socket=wayland\"\n    ],\n    \"cleanup\": [\n        \"/include\",\n        \"/lib/girepository-1.0\",\n        \"/lib/pkgconfig\",\n        \"/share/gir-1.0\",\n        \"/share/vala\"\n    ],\n    \"modules\": [\n        {\n            \"name\": \"libportal\",\n            \"buildsystem\": \"meson\",\n            \"config-opts\": [\n                \"-Dbackend-gtk3=disabled\",\n                \"-Dbackend-gtk4=enabled\",\n                \"-Dbackend-qt5=disabled\",\n                \"-Dbackend-qt6=disabled\",\n                \"-Ddocs=false\",\n                \"-Dtests=false\"\n            ],\n            \"sources\": [\n                {\n                    \"type\": \"archive\",\n                    \"url\": \"https://github.com/flatpak/libportal/releases/download/0.9.1/libportal-0.9.1.tar.xz\",\n                    \"sha256\": \"de801ee349ed3c255a9af3c01b1a401fab5b3fc1c35eb2fd7dfb35d4b8194d7f\"\n                }\n            ]\n        },\n        {\n            \"name\": \"haguichi\",\n            \"buildsystem\": \"meson\",\n            \"sources\": [\n                {\n                    \"type\": \"dir\",\n                    \"path\": \".\"\n                }\n            ]\n        }\n    ]\n}\n"
  },
  {
    "path": "data/com.github.ztefn.haguichi.desktop.in.in",
    "content": "[Desktop Entry]\nType=Application\n# Name used for display in application launchers.\nName=Haguichi\n# Generic name used for display in some application launchers like Kickoff in KDE Plasma.\nGenericName=Hamachi Network Manager\nExec=@BINARY_NAME@\nTerminal=false\n# Description used for display in application launchers.\nComment=Manage your Hamachi networks\nIcon=@APP_ID@\nCategories=GNOME;GTK;Network;P2P;\n# Keywords used for search in application launchers and software centers.\nKeywords=LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\nStartupNotify=true\nX-GNOME-UsesNotifications=true\n"
  },
  {
    "path": "data/com.github.ztefn.haguichi.gresource.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<gresources>\n  <gresource prefix=\"/com/github/ztefn/haguichi\">\n    <file compressed=\"true\">base.css</file>\n    <file compressed=\"true\">elementary.css</file>\n    <file compressed=\"true\">elementary-dark.css</file>\n    <file compressed=\"true\">style.css</file>\n    <file compressed=\"true\">style-dark.css</file>\n    <file compressed=\"true\">style-hc.css</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/dialogs/add-edit-command.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/dialogs/attach.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/dialogs/change-access.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/dialogs/change-password.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/dialogs/join-create-network.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/menus/member-menu.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/menus/network-list-menu.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/menus/network-menu.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/network-list.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/preferences.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/shortcuts-dialog.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/shortcuts-window.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/sidebar.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/command-entry-row.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/command-variable-button.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/commands-editor.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/commands-editor-row.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/network-list-item.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/sidebar-row.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/widgets/sidebar-page.ui</file>\n    <file compressed=\"true\" preprocess=\"xml-stripblanks\">ui/window.ui</file>\n  </gresource>\n</gresources>\n"
  },
  {
    "path": "data/com.github.ztefn.haguichi.gschema.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<schemalist>\n\n  <enum id=\"com.github.ztefn.haguichi.commands.init-system\">\n    <value value=\"0\" nick=\"auto\"/>\n    <value value=\"1\" nick=\"systemctl\"/>\n    <value value=\"2\" nick=\"init.d\"/>\n    <value value=\"3\" nick=\"rc.d\"/>\n    <value value=\"4\" nick=\"none\"/>\n  </enum>\n\n  <enum id=\"com.github.ztefn.haguichi.commands.super-user\">\n    <value value=\"0\" nick=\"auto\"/>\n    <value value=\"1\" nick=\"pkexec\"/>\n    <value value=\"2\" nick=\"kdesu\"/>\n    <value value=\"3\" nick=\"run0\"/>\n    <value value=\"4\" nick=\"sudo\"/>\n  </enum>\n\n  <enum id=\"com.github.ztefn.haguichi.config.protocol\">\n    <value value=\"0\" nick=\"both\"/>\n    <value value=\"1\" nick=\"ipv4\"/>\n    <value value=\"2\" nick=\"ipv6\"/>\n  </enum>\n\n  <enum id=\"com.github.ztefn.haguichi.network-list.sort-by\">\n    <value value=\"0\" nick=\"name\"/>\n    <value value=\"1\" nick=\"status\"/>\n  </enum>\n\n  <enum id=\"com.github.ztefn.haguichi.ui.color-scheme\">\n    <value value=\"0\" nick=\"system\"/>\n    <value value=\"1\" nick=\"light\"/>\n    <value value=\"2\" nick=\"dark\"/>\n  </enum>\n\n  <schema path=\"/com/github/ztefn/haguichi/\" id=\"com.github.ztefn.haguichi\">\n    <key type=\"i\" name=\"stamp\">\n      <default>3</default>\n    </key>\n    <child schema=\"com.github.ztefn.haguichi.behavior\" name=\"behavior\"/>\n    <child schema=\"com.github.ztefn.haguichi.commands\" name=\"commands\"/>\n    <child schema=\"com.github.ztefn.haguichi.config\" name=\"config\"/>\n    <child schema=\"com.github.ztefn.haguichi.network-list\" name=\"network-list\"/>\n    <child schema=\"com.github.ztefn.haguichi.notifications\" name=\"notifications\"/>\n    <child schema=\"com.github.ztefn.haguichi.ui\" name=\"ui\"/>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/behavior/\" id=\"com.github.ztefn.haguichi.behavior\">\n    <key type=\"b\" name=\"connect-on-startup\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"disconnect-on-quit\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"reconnect-on-connection-loss\">\n      <default>true</default>\n    </key>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/commands/\" id=\"com.github.ztefn.haguichi.commands\">\n    <key type=\"as\" name=\"customizable\">\n      <default>['true;true;_Browse Shares;%FILEMANAGER smb://%A/;%FILEMANAGER smb://[%A]/;IPv4', 'true;false;_View Remote Desktop;%REMOTEDESKTOP %A;%REMOTEDESKTOP [%A];IPv4', 'true;false;_Ping;%TERMINAL ping %A;%TERMINAL ping6 %A;IPv4', 'false;false;_SSH;%TERMINAL ssh %A;%TERMINAL ssh %A;IPv4']</default>\n    </key>\n    <key name=\"init-system\" enum=\"com.github.ztefn.haguichi.commands.init-system\">\n      <default>'auto'</default>\n    </key>\n    <key name=\"super-user\" enum=\"com.github.ztefn.haguichi.commands.super-user\">\n      <default>'auto'</default>\n    </key>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/config/\" id=\"com.github.ztefn.haguichi.config\">\n    <key type=\"s\" name=\"check-internet-hostname\">\n      <default>'www.google.com'</default>\n    </key>\n    <key type=\"s\" name=\"check-internet-ip\">\n      <default>'8.8.8.8'</default>\n    </key>\n    <key type=\"s\" name=\"nickname\">\n      <default>'%USERNAME'</default>\n    </key>\n    <key name=\"protocol\" enum=\"com.github.ztefn.haguichi.config.protocol\">\n      <default>'both'</default>\n    </key>\n    <key type=\"i\" name=\"reconnect-interval\">\n      <default>30</default>\n      <range min=\"15\" max=\"3600\"/>\n    </key>\n    <key type=\"i\" name=\"update-interval\">\n      <default>30</default>\n      <range min=\"0\" max=\"3600\"/>\n    </key>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/network-list/\" id=\"com.github.ztefn.haguichi.network-list\">\n    <key type=\"as\" name=\"collapsed-networks\">\n      <default>[]</default>\n    </key>\n    <key type=\"as\" name=\"long-nicks\">\n      <default>[]</default>\n    </key>\n    <key type=\"s\" name=\"member-template\">\n      <default><![CDATA['%N%_*']]></default>\n    </key>\n    <key type=\"s\" name=\"network-template\">\n      <default><![CDATA['%N%_*']]></default>\n    </key>\n    <key type=\"b\" name=\"show-offline-members\">\n      <default>true</default>\n    </key>\n    <key name=\"sort-by\" enum=\"com.github.ztefn.haguichi.network-list.sort-by\">\n      <default>'name'</default>\n    </key>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/notifications/\" id=\"com.github.ztefn.haguichi.notifications\">\n    <key type=\"b\" name=\"connection-loss\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"member-join\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"member-leave\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"member-offline\">\n      <default>true</default>\n    </key>\n    <key type=\"b\" name=\"member-online\">\n      <default>true</default>\n    </key>\n  </schema>\n\n  <schema path=\"/com/github/ztefn/haguichi/ui/\" id=\"com.github.ztefn.haguichi.ui\">\n    <key name=\"color-scheme\" enum=\"com.github.ztefn.haguichi.ui.color-scheme\">\n      <default>'dark'</default>\n    </key>\n    <key type=\"i\" name=\"height\">\n      <default>466</default>\n    </key>\n    <key type=\"b\" name=\"show-indicator\">\n      <default>true</default>\n    </key>\n    <key type=\"i\" name=\"width\">\n      <default>582</default>\n    </key>\n  </schema>\n\n</schemalist>\n"
  },
  {
    "path": "data/com.github.ztefn.haguichi.metainfo.xml.in.in",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component type=\"desktop-application\">\n  <id>@APP_ID@</id>\n  <metadata_license>CC0</metadata_license>\n  <project_license>GPL-3.0-or-later</project_license>\n  <name translate=\"no\">@APP_NAME@</name>\n  <summary>Manage your Hamachi networks</summary>\n  <description>\n    <p>Haguichi makes it a breeze to join, create and administer Hamachi networks.</p>\n    <p>Features:</p>\n    <ul>\n      <li>Searchable, sortable and collapsible network list</li>\n      <li>Sidebar for easy access to details and actions</li>\n      <li>Indicator support for quick access to primary actions</li>\n      <li>Desktop notifications to stay up to date of network events</li>\n      <li>Commands that can be completely customized</li>\n      <li>Backup and restore of your Hamachi configuration folder</li>\n    </ul>\n    <p><em>Please note: Requires installation of Hamachi on the system in order to use.</em></p>\n  </description>\n  <screenshots>\n    <screenshot type=\"default\">\n      <caption>View your network list and client information</caption>\n      <image scale=\"2\">https://haguichi.net/appdata/screenshot-1.png</image>\n    </screenshot>\n    <screenshot>\n      <caption>View selected member details</caption>\n      <image scale=\"2\">https://haguichi.net/appdata/screenshot-2.png</image>\n    </screenshot>\n    <screenshot>\n      <caption>View selected network details</caption>\n      <image scale=\"2\">https://haguichi.net/appdata/screenshot-3.png</image>\n    </screenshot>\n    <screenshot>\n      <caption>Search your network list</caption>\n      <image scale=\"2\">https://haguichi.net/appdata/screenshot-4.png</image>\n    </screenshot>\n    <screenshot>\n      <caption>Join or create networks</caption>\n      <image scale=\"2\">https://haguichi.net/appdata/screenshot-5.png</image>\n    </screenshot>\n  </screenshots>\n  <supports>\n    <control>keyboard</control>\n    <control>pointing</control>\n    <control>touch</control>\n  </supports>\n  <recommends>\n    <internet>always</internet>\n  </recommends>\n  <requires>\n    <display_length compare=\"ge\">360</display_length>\n  </requires>\n  <branding>\n    <color type=\"primary\" scheme_preference=\"light\">#ffdbbc</color>\n    <color type=\"primary\" scheme_preference=\"dark\">#910e08</color>\n  </branding>\n  <content_rating type=\"oars-1.1\" />\n  <launchable type=\"desktop-id\">@APP_ID@.desktop</launchable>\n  <releases>\n    <release version=\"1.5.4\" date=\"2026-04-18\">\n      <url>https://haguichi.net/news/release154/</url>\n      <description translate=\"no\">\n        <p>Haguichi 1.5.4 has tightened its bolts and rolls out the following changes:</p>\n        <ul>\n          <li>Increased border radius of network list rows for libadwaita 1.7 and later.</li>\n          <li>Now using static light and dark colors for the style selector to prevent issues with custom themes.</li>\n          <li>Added Menu and Shift+F10 keyboard shortcuts to open the menu of commands editor rows.</li>\n          <li>Added support for starting the Hamachi daemon directly without using any init system.</li>\n          <li>Added support for using the Hamachi daemon directly as command line interface.</li>\n          <li>Added support for run0 to gain super user privileges.</li>\n          <li>Reinstated support for kdesu to gain super user privileges.</li>\n          <li>Dropped support for all Hamachi versions older than 2.1.0.203.</li>\n          <li>Improved memory safety for background threads that determine network ownership or retrieve long nicks.</li>\n          <li>Disabled markup parsing in action row labels and toasts that may contain user input.</li>\n          <li>Removed extra initial space in parsed %TERMINAL commands.</li>\n          <li>Fixed issue on GTK versions before 4.18 where a long network or member name could mess up the sidebar layout.</li>\n          <li>Updated Hungarian, Japanese, Slovak and Turkish translations.</li>\n          <li>Other minor fixes, improvements and optimizations.</li>\n        </ul>\n      </description>\n    </release>\n    <release version=\"1.5.3\" date=\"2025-11-09\">\n      <url>https://haguichi.net/news/release153/</url>\n      <description translate=\"no\">\n        <p>Haguichi 1.5.3 knocks at the door with a handful of treats and tweaks:</p>\n        <ul>\n          <li>Replaced deprecated Gtk.ShortcutsWindow with Adw.ShortcutsDialog when libadwaita 1.8 is available.</li>\n          <li>Sidebar title is now shown in the headerbar when scrolled down.</li>\n          <li>Enabled automatic row selection in the network list when searching or after a row is collapsed or removed.</li>\n          <li>Return and Delete key presses are now passed on to the selected row when search entry is focused.</li>\n          <li>Search entry can now be refocused by pressing Ctrl+F while search mode is already active.</li>\n          <li>When using drag and drop to reorder a command the dragged row is now anchored to the point where the drag started.</li>\n          <li>Added option to duplicate existing commands.</li>\n          <li>Added Adw.Toast with button to undo removal when removing a command.</li>\n          <li>Added support for COSMIC Terminal and Files.</li>\n          <li>Added Hungarian translation (thanks to therealmate).</li>\n          <li>Updated Swedish translation.</li>\n          <li>All bundled resource files are now compressed.</li>\n          <li>Other minor fixes, improvements and optimizations.</li>\n        </ul>\n      </description>\n    </release>\n    <release version=\"1.5.2\" date=\"2025-04-30\">\n      <url>https://haguichi.net/news/release152/</url>\n      <description translate=\"no\">\n        <p>Haguichi 1.5.2 sends up white smoke to announce its newest changes:</p>\n        <ul>\n          <li>Implemented Adw.StatusPage to show the connection restore countdown with an additional cancel button.</li>\n          <li>Connection loss notification will not be displayed if the window is already focused.</li>\n          <li>Selected node and search text is now saved when restoring connection.</li>\n          <li>Within \"Add Command\" and \"Edit Command\" dialogs command variables can now be inserted directly from the popover into the command entries.</li>\n          <li>Now using Adw.ToggleGroup instead of grouped Gtk.CheckButtons to select IP version priority when libadwaita 1.7 is available.</li>\n          <li>Now using Adw.Dialog based widgets starting from libadwaita 1.5 instead of 1.6.</li>\n          <li>Added more network list update interval options to preferences dialog.</li>\n          <li>Added support for Flatpak commands.</li>\n          <li>Added support for Ghostty.</li>\n          <li>Added debug information to about dialog.</li>\n          <li>Updated Yaru icons for Ubuntu builds to use a smaller square for optical compensation (thanks again to ubuntujaggers).</li>\n          <li>Updated Polish and Portuguese translations.</li>\n          <li>Bumped minimum required versions of GLib (2.80), GTK (4.14) and libadwaita (1.5).</li>\n          <li>Other minor fixes, improvements and optimizations.</li>\n        </ul>\n      </description>\n    </release>\n    <release version=\"1.5.1\" date=\"2024-12-01\">\n      <url>https://haguichi.net/news/release151/</url>\n      <description translate=\"no\">\n        <p>Haguichi 1.5.1 has put on its bow tie and is ready to celebrate the holiday season:</p>\n        <ul>\n          <li>Modernized layout for all input dialogs.</li>\n          <li>Now using Adw.Dialog as base for all dialogs when libadwaita 1.6 is available.</li>\n          <li>Now using Adw.Spinner instead of Gtk.Spinner when libadwaita 1.6 is available.</li>\n          <li>Fixed showing commands menu button if there is only one item present.</li>\n          <li>Added support for Ptyxis.</li>\n          <li>Added Finnish translation (thanks to Jiri Grönroos).</li>\n          <li>Updated Indonesian and Russian translations.</li>\n          <li>Other minor fixes and improvements.</li>\n        </ul>\n      </description>\n    </release>\n    <release version=\"1.5.0\" date=\"2024-07-20\">\n      <url>https://haguichi.net/news/release150/</url>\n      <description translate=\"no\">\n        <p>Haguichi 1.5.0 has been rebuild completely from the ground up:</p>\n        <ul>\n          <li>Redesigned user interface using GTK 4 and libadwaita.</li>\n          <li>Added support for multiple search terms by separating them using a \"⎵\" (space) or \"+\" (plus) to find only results matching both terms and by using a \",\" (comma) to find results matching either term.</li>\n          <li>Now displays a message if there are no results found instead of showing an empty network list.</li>\n          <li>Online and total member count in sidebar now includes the client itself.</li>\n          <li>Networks are now automatically selected immediately after you create or join them.</li>\n          <li>Hamachi is now automatically restarted if the hamachi set-pass command hangs when changing the network password.</li>\n          <li>Reimplemented indicator to communicate with the SNI D-Bus interface directly and drop dependency on appindicator libraries that don't support GTK 4.</li>\n          <li>Implemented Xdp.Portal to request permission to run in the background and to set background status when doing so.</li>\n          <li>Renamed --hidden command line option to --background or -b for short.</li>\n          <li>Changed accelerator to open preferences to Control+, following the GNOME standard for keyboard shortcuts.</li>\n          <li>Changed default network list update interval to 30 seconds.</li>\n          <li>Added support for zstd compressed tar archives when saving and restoring configuration backups.</li>\n          <li>Added line \"StartupNotify=true\" to .desktop file so that a spinning cursor is shown on launch.</li>\n          <li>Now using standard GLib functions for message logging so that important errors are written to the system logs.</li>\n          <li>Updated Brazilian Portuguese, Dutch, Japanese, Lithuanian, Spanish and Ukrainian translations.</li>\n        </ul>\n      </description>\n    </release>\n  </releases>\n  <url type=\"homepage\">https://haguichi.net</url>\n  <url type=\"bugtracker\">https://github.com/ztefn/haguichi/issues</url>\n  <url type=\"faq\">https://haguichi.net/faq/</url>\n  <url type=\"help\">https://haguichi.net/tips-and-tricks/</url>\n  <url type=\"donation\">https://haguichi.net/donate/</url>\n  <url type=\"translate\">https://github.com/ztefn/haguichi#translations</url>\n  <url type=\"vcs-browser\">https://github.com/ztefn/haguichi</url>\n  <developer id=\"com.stephenbrandt\">\n    <name translate=\"no\">Stephen Brandt</name>\n  </developer>\n  <update_contact>stephen@stephenbrandt.com</update_contact>\n  <translation type=\"gettext\">@GETTEXT_PACKAGE@</translation>\n</component>\n"
  },
  {
    "path": "data/icons/meson.build",
    "content": "if get_option('for-elementary')\n  icon_themes = ['elementary/hicolor']\nelse\n  icon_themes = ['hicolor']\nendif\n\nif get_option('for-ubuntu')\n  icon_themes += ['Yaru']\nendif\n\nforeach theme : icon_themes\n  install_subdir(theme,\n    follow_symlinks: true,\n        install_dir: get_option('datadir') / 'icons'\n  )\nendforeach\n"
  },
  {
    "path": "data/meson.build",
    "content": "desktop = app_id + '.desktop'\n\ndesktop_in = configure_file(\n          input: desktop + '.in.in',\n         output: desktop + '.in',\n  configuration: conf\n)\n\ndesktop_file = i18n.merge_file(\n        input: desktop_in,\n       output: desktop,\n         type: 'desktop',\n       po_dir: '../po',\n      install: true,\n  install_dir: get_option('datadir') / 'applications'\n)\n\ndesktop_utils = find_program('desktop-file-validate', required: false)\nif desktop_utils.found()\n  test('Validate desktop file', desktop_utils, args: [desktop_file])\nendif\n\nappstream = app_id + '.metainfo.xml'\n\nappstream_in = configure_file(\n          input: appstream + '.in.in',\n         output: appstream + '.in',\n  configuration: conf\n)\n\nappstream_file = i18n.merge_file(\n        input: appstream_in,\n       output: appstream,\n       po_dir: '../po',\n      install: true,\n  install_dir: get_option('datadir') / 'metainfo'\n)\n\nappstreamcli = find_program('appstreamcli', required: false, disabler: true)\ntest('Validate appstream file', appstreamcli,\n  args: ['validate', '--no-net', '--explain', appstream_file]\n)\n\ninstall_data(app_id + '.gschema.xml',\n  install_dir: get_option('datadir') / 'glib-2.0' / 'schemas'\n)\n\ncompile_schemas = find_program('glib-compile-schemas', required: false, disabler: true)\ntest('Validate schema file', compile_schemas,\n  args: ['--strict', '--dry-run', meson.current_source_dir()]\n)\n\nresources = gnome.compile_resources(app_name.to_lower() + '-resources', app_id + '.gresource.xml',\n      c_name: app_name.to_lower(),\n  source_dir: ['stylesheets']\n)\n\nsubdir('icons')\n"
  },
  {
    "path": "data/stylesheets/base.css",
    "content": "statuspage > scrolledwindow > viewport > box {\n  margin-top: 6px;\n}\n\n\n#restore-commands-button image {\n  transform: scaleX(-1);\n}\n\n\n#add-command-button {\n  background: none;\n  padding: 9px;\n}\n\n\nstyleselector {\n  margin: 9px 0;\n}\n\nstyleselector checkbutton {\n  background-clip: content-box;\n  border-radius: 9999px;\n  box-shadow: inset 0 0 0 1px alpha(currentColor, 0.15);\n  min-height: 30px;\n  min-width: 30px;\n  outline-offset: 1px;\n  padding: 1px;\n}\n\nstyleselector checkbutton:checked {\n  box-shadow: inset 0 0 0 2px @accent_bg_color;\n}\n\nstyleselector checkbutton.system {\n  background-image: linear-gradient(to bottom right, #FFFFFF 49.99%, #202020 50.01%);\n}\n\nstyleselector checkbutton.light {\n  background-color: #FFFFFF;\n}\n\nstyleselector checkbutton.dark {\n  background-color: #202020;\n}\n\nstyleselector checkbutton radio {\n  -gtk-icon-source: none;\n  background: none;\n  border: none;\n  box-shadow: none;\n  min-height: 12px;\n  min-width: 12px;\n  padding: 2px;\n}\nstyleselector checkbutton radio:dir(ltr) {\n  transform: translate(16px, 10px);\n}\nstyleselector checkbutton radio:dir(rtl) {\n  transform: translate(-16px, 10px);\n}\nstyleselector checkbutton radio:checked {\n  -gtk-icon-source: -gtk-icontheme(\"object-select-symbolic\");\n  background-color: @accent_bg_color;\n  color: @accent_fg_color;\n}\n\n"
  },
  {
    "path": "data/stylesheets/elementary-dark.css",
    "content": "@import \"elementary.css\";\n\n\n/*\n * Override background colors for overlay split view\n */\n\noverlay-split-view widget:not(.sidebar-pane) > toolbarview,\noverlay-split-view widget:not(.sidebar-pane) > toolbarview searchbar,\noverlay-split-view widget:not(.sidebar-pane) > toolbarview listview {\n  background-color: @insensitive_bg_color;\n}\n\noverlay-split-view widget.sidebar-pane {\n  background-color: @base_color;\n}\n\n\n/*\n * Override background color for network list refresh button\n */\n\n#overlay-refresh-button {\n  background-color: alpha(@BLACK_300, 0.5);\n}\n\n\n/*\n * Override background colors for network nodes\n */\n\n#network-list > scrolledwindow > listview > row .network-node-unapproved {\n  background: @STRAWBERRY_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-error {\n  background: @BANANA_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-offline {\n  background: alpha(@SILVER_300, 0.6);\n}\n\n"
  },
  {
    "path": "data/stylesheets/elementary.css",
    "content": "@import \"base.css\";\n\n@define-color accent_color #f44;\n\n\n/*\n * Fix background glitch for window controls in dark mode when window is unfocused\n * https://github.com/elementary/stylesheet/issues/1311\n */\n\nwindowcontrols button {\n  background: none;\n}\n\n\n/*\n * Decrease margins on main window controls\n */\n\n#main-window windowcontrols.start:dir(ltr) {\n  margin-right: 0;\n}\n#main-window windowcontrols.start:dir(rtl) {\n  margin-left: 0;\n}\n\n#main-window windowcontrols.end:dir(ltr) {\n  margin-left: 9px;\n}\n#main-window windowcontrols.end:dir(rtl) {\n  margin-right: 9px;\n}\n\n\n/*\n * Give shortcuts window a flat appearance\n */\n\nwindow.shortcuts headerbar,\nwindow.shortcuts searchbar {\n  background: none;\n  box-shadow: none;\n}\n\nwindow.shortcuts shortcut .keycap {\n  background: alpha(black, 0.08);\n  border: none;\n  box-shadow: 0 1px 0 0 alpha(black, 0.15);\n  color: alpha(@fg_color, 0.78);\n}\n\n\n/*\n * Add missing styles for pill buttons\n * https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/style-classes.html#pill\n */\n\nbutton.pill {\n  border-radius: 9999px;\n  padding: 8px 20px;\n}\n\n\n/*\n * Add missing styles for tabular numerals\n * https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/style-classes.html#typography-styles\n */\n\n.numeric {\n  font-feature-settings: \"tnum\";\n}\n\n\n/*\n * Add missing styles for statuspage titles\n */\n\nstatuspage .title {\n  font-size: 18pt;\n  font-weight: 700;\n  letter-spacing: -0.04em;\n}\n\n\n/*\n * Fix styles for alert dialogs\n */\n\ndialog.alert .message-area,\ndialog.alert .response-area {\n  padding: 12px;\n}\n\ndialog.alert .message-area .heading-bin > label {\n  font-size: 1.22em;\n  font-weight: 500;\n  letter-spacing: initial;\n  margin: 0;\n  opacity: 1;\n  padding: 3px 3px 12px;\n}\n\n\n/*\n * Fix foreground color for dragged rows in light mode\n * https://github.com/elementary/stylesheet/issues/1314\n */\n\nlist.boxed-list > row {\n  color: @fg_color;\n}\n\n\n/*\n * Fix edit icon appearing only on hover\n * https://github.com/elementary/stylesheet/issues/1313\n */\n\nlist.boxed-list > row.entry .edit-icon {\n  opacity: 1;\n}\n\n\n/*\n * Add missing styles for property rows\n * https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/style-classes.html#property-rows\n */\n\nrow.property label.title {\n  font-size: 0.85em;\n  opacity: 0.75;\n}\n\nrow.property label.subtitle {\n  font-size: 1em;\n  opacity: 1;\n}\n\n\n/*\n * Add missing styles for overlay split view\n * https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.OverlaySplitView.html\n */\n\noverlay-split-view widget:not(.sidebar-pane) > toolbarview,\noverlay-split-view widget:not(.sidebar-pane) > toolbarview searchbar,\noverlay-split-view widget:not(.sidebar-pane) > toolbarview listview {\n  background-color: @base_color;\n}\n\noverlay-split-view widget.sidebar-pane {\n  background-color: @insensitive_bg_color;\n}\noverlay-split-view widget.sidebar-pane:dir(ltr) {\n  border-left: 1px solid @menu_separator;\n  border-right: none;\n}\noverlay-split-view widget.sidebar-pane:dir(rtl) {\n  border-left: none;\n  border-right: 1px solid @menu_separator;\n}\n\n\n/*\n * Remove background and add some extra padding for sidebar rows\n */\n\noverlay-split-view .rich-list {\n  background: none;\n}\n\noverlay-split-view .rich-list row {\n  padding: 6px 12px;\n}\n\n\n/*\n * Use regular icon style for sidebar row buttons\n */\n\noverlay-split-view .rich-list row button {\n  -gtk-icon-style: regular;\n}\n\n\n/*\n * Modify the color of the lock icon depending on its state\n */\n\noverlay-split-view .rich-list row button.success image {\n  filter: hue-rotate(40deg) saturate(2);\n}\n\noverlay-split-view .rich-list row button.warning image {\n  filter: hue-rotate(20deg) saturate(5);\n}\n\noverlay-split-view .rich-list row button.error image {\n  filter: hue-rotate(-50deg) saturate(3);\n}\n\n\n/*\n * Set styles for connection button in title bar\n */\n\n#connect-button,\n#disconnect-button {\n  border: 1px solid alpha(#000, 0.2);\n  border-radius: 50%;\n  box-shadow: 0 1px 0 0 alpha(#fff, 0.25),\n              inset 0 1px 0 0 alpha(#fff, 0.25);\n}\n\n#connect-button:not(:disabled) {\n  background-color: @selected_bg_color;\n}\n\n#disconnect-button {\n  background-color: @accent_color;\n}\n\n#disconnect-button:backdrop {\n  background-color: alpha(@accent_color, 0.9);\n}\n\n#disconnect-button image {\n  color: shade(@accent_color, 0.5);\n  -gtk-icon-shadow: 0 1px shade(@accent_color, 1.2);\n}\n\n#connect-button:focus,\n#disconnect-button:focus {\n  outline-color: alpha(@accent_color, 0.3);\n  outline-width: 2px;\n  outline-style: solid;\n}\n\n\n/*\n * Set styles for network list overlay buttons\n */\n\n#overlay-refresh-button {\n  background-color: alpha(@SILVER_300, 0.5);\n}\n\n#add-network-button button {\n  padding: 8px;\n}\n\n\n/*\n * Set padding for rows in network list\n */\n\n#network-list > scrolledwindow > listview > row {\n  padding: 6px;\n}\n\n\n/*\n * Increase font weight for network labels\n */\n\n#network-list > scrolledwindow > listview > row .network-label {\n  font-weight: 600;\n}\n\n\n/*\n * Set styles for network nodes\n */\n\n#network-list > scrolledwindow > listview > row .network-node {\n  border-radius: 50%;\n}\n#network-list > scrolledwindow > listview > row .network-node:dir(ltr) {\n  margin-left: 6px;\n}\n#network-list > scrolledwindow > listview > row .network-node:dir(rtl) {\n  margin-right: 6px;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-online {\n  background: @LIME_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-online-relayed {\n  background: @BLUEBERRY_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unreachable {\n  background: @ORANGE_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unapproved {\n  background: @STRAWBERRY_300;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-error {\n  background: @BANANA_500;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-offline {\n  background: alpha(@SILVER_500, 0.6);\n}\n\n\n/*\n * Remove padding on empty bottom action bar\n */\n\n#preferences viewswitcherbar actionbar {\n  padding: 0;\n}\n\n\n/*\n * Remove background of restore button in disabled state\n */\n\n#restore-commands-button:disabled {\n  background: none;\n  box-shadow: none;\n}\n\n\n/*\n * Add styling for command variables popover\n */\n\nmenubutton.command-variables popover contents {\n  padding: 2px 8px 8px;\n}\n\nmenubutton.command-variables popover contents button label {\n  font-weight: 400;\n}\n\nmenubutton.command-variables popover contents button label.caption {\n  font-size: 0.85em;\n}\n\n\n/*\n * Override some properties for style selector\n */\n\nstyleselector {\n  margin: 0;\n}\n\nstyleselector checkbutton:checked {\n  box-shadow: inset 0 0 0 2px @accent_color;\n}\n\nstyleselector checkbutton.system {\n  background-image: linear-gradient(to bottom right, @SILVER_100 49.99%, @BLACK_500 50.01%);\n}\n\nstyleselector checkbutton.light {\n  background-color: @SILVER_100;\n}\n\nstyleselector checkbutton.dark {\n  background-color: @BLACK_500;\n}\n\nstyleselector checkbutton radio:checked {\n  background-color: @accent_color;\n  color: @SILVER_100;\n}\n\n"
  },
  {
    "path": "data/stylesheets/style-dark.css",
    "content": "#network-list > scrolledwindow > listview > row .network-node-online {\n  background: @green_2;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-online-relayed {\n  background: @blue_2;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unreachable {\n  background: @red_1;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unapproved {\n  background: @purple_1;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-error {\n  background: @yellow_2;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-offline {\n  background: @dark_1;\n}\n\n"
  },
  {
    "path": "data/stylesheets/style-hc.css",
    "content": "#network-list > scrolledwindow > listview > row.activatable:hover {\n  box-shadow: inset 0 0 0 1px @borders;\n}\n\n#network-list > scrolledwindow > listview > row:selected {\n  box-shadow: inset 0 0 0 1px alpha(@accent_color, .6);\n}\n\n\n#add-command-button {\n  box-shadow: none;\n}\n\n"
  },
  {
    "path": "data/stylesheets/style.css",
    "content": "@import \"base.css\";\n\nwindow.custom .suggested-action {\n  color: @dark_4;\n  background: linear-gradient(to bottom, #006EFF 49.99%, #FFD500 50.01%);\n}\n\n\n#add-network-button button {\n  padding: 3px;\n}\n\n\n#network-list > scrolledwindow > listview > row {\n  border-radius: 6px;\n  margin: 0 6px 2px;\n  padding: 6px;\n}\nwindow.adw-1-7 #network-list > scrolledwindow > listview > row {\n  border-radius: 9px;\n}\n\n#network-list > scrolledwindow > listview > row:last-child {\n  margin-bottom: 6px;\n}\n\n\n#network-list > scrolledwindow > listview > row .network-node {\n  border-radius: 50%;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-online {\n  background: @green_5;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-online-relayed {\n  background: @blue_3;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unreachable {\n  background: @red_1;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-unapproved {\n  background: @purple_3;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-error {\n  background: @yellow_5;\n}\n\n#network-list > scrolledwindow > listview > row .network-node-offline {\n  background: @light_5;\n}\n\n\nmenubutton.command-variables popover contents label.title-4 {\n  margin: 9px;\n}\n\n"
  },
  {
    "path": "data/ui/dialogs/add-edit-command.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiAddEditCommandDialog\" parent=\"AdwDialog\">\n    <property name=\"content-width\">440</property>\n    <property name=\"default-widget\">save_button</property>\n    <property name=\"focus-widget\">label_entry</property>\n    <child>\n      <object class=\"AdwToolbarView\">\n        <child type=\"top\">\n          <object class=\"AdwHeaderBar\"/>\n        </child>\n        <property name=\"content\">\n          <object class=\"AdwClamp\">\n            <child>\n              <object class=\"GtkBox\">\n                <property name=\"margin-start\">12</property>\n                <property name=\"margin-end\">12</property>\n                <property name=\"orientation\">vertical</property>\n                <child>\n                  <object class=\"GtkListBox\">\n                    <property name=\"margin-top\">6</property>\n                    <property name=\"margin-bottom\">3</property>\n                    <property name=\"hexpand\">true</property>\n                    <property name=\"valign\">start</property>\n                    <property name=\"selection-mode\">none</property>\n                    <style>\n                      <class name=\"boxed-list\"/>\n                    </style>\n                    <child>\n                      <object class=\"AdwEntryRow\" id=\"label_entry\">\n                        <property name=\"title\" translatable=\"yes\">Label</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"set_state\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandEntryRow\" id=\"command_ipv4_entry\">\n                        <property name=\"title\" translatable=\"yes\">IPv4 Command</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"set_state\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandEntryRow\" id=\"command_ipv6_entry\">\n                        <property name=\"title\" translatable=\"yes\">IPv6 Command</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"set_state\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"AdwActionRow\" id=\"priority\">\n                        <property name=\"title\" translatable=\"yes\">Priority</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\" id=\"save_button\">\n                    <property name=\"label\" translatable=\"yes\">_Save</property>\n                    <property name=\"use-underline\">true</property>\n                    <property name=\"halign\">center</property>\n                    <property name=\"margin-top\">15</property>\n                    <property name=\"margin-bottom\">18</property>\n                    <signal name=\"clicked\" handler=\"save_command\"/>\n                    <style>\n                      <class name=\"pill\"/>\n                      <class name=\"suggested-action\"/>\n                    </style>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <property name=\"scope\">managed</property>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Escape</property>\n            <property name=\"action\">action(window.close)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/dialogs/attach.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiAttachDialog\" parent=\"AdwDialog\">\n    <property name=\"content-width\">400</property>\n    <property name=\"default-widget\">attach_button</property>\n    <property name=\"focus-widget\">account_entry</property>\n    <property name=\"title\" translatable=\"yes\">Attach to Account</property>\n    <child>\n      <object class=\"AdwToolbarView\">\n        <child type=\"top\">\n          <object class=\"AdwHeaderBar\"/>\n        </child>\n        <property name=\"content\">\n          <object class=\"AdwClamp\">\n            <child>\n              <object class=\"GtkBox\">\n                <property name=\"margin-start\">12</property>\n                <property name=\"margin-end\">12</property>\n                <property name=\"orientation\">vertical</property>\n                <child>\n                  <object class=\"GtkListBox\">\n                    <property name=\"margin-top\">6</property>\n                    <property name=\"margin-bottom\">3</property>\n                    <property name=\"hexpand\">true</property>\n                    <property name=\"valign\">start</property>\n                    <property name=\"selection-mode\">none</property>\n                    <style>\n                      <class name=\"boxed-list\"/>\n                    </style>\n                    <child>\n                      <object class=\"AdwEntryRow\" id=\"account_entry\">\n                        <property name=\"title\" translatable=\"yes\">Account</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"entry_changed\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"AdwSwitchRow\" id=\"include_networks_switch\">\n                        <property name=\"title\" translatable=\"yes\">Include all networks created by this client</property>\n                        <property name=\"active\">true</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkRevealer\" id=\"revealer\">\n                    <child>\n                      <object class=\"GtkLabel\" id=\"message_label\">\n                        <property name=\"halign\">fill</property>\n                        <property name=\"margin-top\">9</property>\n                        <property name=\"wrap\">true</property>\n                        <property name=\"xalign\">0</property>\n                        <style>\n                          <class name=\"error\"/>\n                        </style>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\" id=\"attach_button\">\n                    <property name=\"label\" translatable=\"yes\">_Attach</property>\n                    <property name=\"use-underline\">true</property>\n                    <property name=\"halign\">center</property>\n                    <property name=\"margin-top\">15</property>\n                    <property name=\"margin-bottom\">18</property>\n                    <property name=\"sensitive\">false</property>\n                    <signal name=\"clicked\" handler=\"attach\"/>\n                    <style>\n                      <class name=\"pill\"/>\n                      <class name=\"suggested-action\"/>\n                    </style>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <property name=\"scope\">managed</property>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Escape</property>\n            <property name=\"action\">action(window.close)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/dialogs/change-access.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiChangeAccessDialog\" parent=\"AdwDialog\">\n    <property name=\"content-width\">400</property>\n    <property name=\"default-widget\">change_button</property>\n    <property name=\"focus-widget\">locked</property>\n    <property name=\"title\" translatable=\"yes\">Change Access</property>\n    <child>\n      <object class=\"AdwToolbarView\">\n        <child type=\"top\">\n          <object class=\"AdwHeaderBar\"/>\n        </child>\n        <property name=\"content\">\n          <object class=\"AdwClamp\">\n            <child>\n              <object class=\"GtkBox\">\n                <property name=\"margin-start\">12</property>\n                <property name=\"margin-end\">12</property>\n                <property name=\"orientation\">vertical</property>\n                <child>\n                  <object class=\"GtkListBox\">\n                    <property name=\"margin-top\">6</property>\n                    <property name=\"margin-bottom\">3</property>\n                    <property name=\"hexpand\">true</property>\n                    <property name=\"valign\">start</property>\n                    <property name=\"selection-mode\">none</property>\n                    <style>\n                      <class name=\"boxed-list\"/>\n                    </style>\n                    <child>\n                      <object class=\"AdwSwitchRow\" id=\"locked\">\n                        <property name=\"title\" translatable=\"yes\">Locked</property>\n                        <property name=\"subtitle\" translatable=\"yes\">Do not accept new network members</property>\n                        <signal name=\"notify::active\" handler=\"lock_changed\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"AdwComboRow\" id=\"approval\">\n                        <property name=\"title\" translatable=\"yes\">Approval</property>\n                        <property name=\"model\">\n                          <object class=\"GtkStringList\">\n                            <items>\n                              <item translatable=\"yes\">Automatically</item>\n                              <item translatable=\"yes\">Manually</item>\n                            </items>\n                          </object>\n                        </property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\" id=\"change_button\">\n                    <property name=\"label\" translatable=\"yes\">C_hange</property>\n                    <property name=\"use-underline\">true</property>\n                    <property name=\"halign\">center</property>\n                    <property name=\"margin-top\">15</property>\n                    <property name=\"margin-bottom\">18</property>\n                    <signal name=\"clicked\" handler=\"change_access\"/>\n                    <style>\n                      <class name=\"pill\"/>\n                      <class name=\"suggested-action\"/>\n                    </style>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <property name=\"scope\">managed</property>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Escape</property>\n            <property name=\"action\">action(window.close)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/dialogs/change-password.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiChangePasswordDialog\" parent=\"AdwDialog\">\n    <property name=\"content-width\">400</property>\n    <property name=\"default-widget\">change_button</property>\n    <property name=\"focus-widget\">password_entry</property>\n    <property name=\"title\" translatable=\"yes\">Change Password</property>\n    <child>\n      <object class=\"AdwToolbarView\">\n        <child type=\"top\">\n          <object class=\"AdwHeaderBar\"/>\n        </child>\n        <property name=\"content\">\n          <object class=\"AdwClamp\">\n            <child>\n              <object class=\"GtkBox\">\n                <property name=\"margin-start\">12</property>\n                <property name=\"margin-end\">12</property>\n                <property name=\"orientation\">vertical</property>\n                <child>\n                  <object class=\"GtkListBox\">\n                    <property name=\"margin-top\">6</property>\n                    <property name=\"margin-bottom\">3</property>\n                    <property name=\"hexpand\">true</property>\n                    <property name=\"valign\">start</property>\n                    <property name=\"selection-mode\">none</property>\n                    <style>\n                      <class name=\"boxed-list\"/>\n                    </style>\n                    <child>\n                      <object class=\"AdwPasswordEntryRow\" id=\"password_entry\">\n                        <property name=\"title\" translatable=\"yes\">New Password</property>\n                        <property name=\"activates-default\">true</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\" id=\"change_button\">\n                    <property name=\"label\" translatable=\"yes\">C_hange</property>\n                    <property name=\"use-underline\">true</property>\n                    <property name=\"halign\">center</property>\n                    <property name=\"margin-top\">15</property>\n                    <property name=\"margin-bottom\">18</property>\n                    <signal name=\"clicked\" handler=\"change_password\"/>\n                    <style>\n                      <class name=\"pill\"/>\n                      <class name=\"suggested-action\"/>\n                    </style>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <property name=\"scope\">managed</property>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Escape</property>\n            <property name=\"action\">action(window.close)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/dialogs/join-create-network.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiJoinCreateNetworkDialog\" parent=\"AdwDialog\">\n    <property name=\"content-width\">400</property>\n    <property name=\"default-widget\">add_button</property>\n    <property name=\"focus-widget\">id_entry</property>\n    <child>\n      <object class=\"AdwToolbarView\">\n        <child type=\"top\">\n          <object class=\"AdwHeaderBar\"/>\n        </child>\n        <property name=\"content\">\n          <object class=\"AdwClamp\">\n            <child>\n              <object class=\"GtkBox\">\n                <property name=\"margin-start\">12</property>\n                <property name=\"margin-end\">12</property>\n                <property name=\"orientation\">vertical</property>\n                <child>\n                  <object class=\"GtkListBox\">\n                    <property name=\"margin-top\">6</property>\n                    <property name=\"margin-bottom\">3</property>\n                    <property name=\"hexpand\">true</property>\n                    <property name=\"valign\">start</property>\n                    <property name=\"selection-mode\">none</property>\n                    <style>\n                      <class name=\"boxed-list\"/>\n                    </style>\n                    <child>\n                      <object class=\"AdwEntryRow\" id=\"id_entry\">\n                        <property name=\"title\" translatable=\"yes\">Network ID</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"entry_changed\"/>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"AdwPasswordEntryRow\" id=\"password_entry\">\n                        <property name=\"title\" translatable=\"yes\">Password</property>\n                        <property name=\"activates-default\">true</property>\n                        <signal name=\"changed\" handler=\"entry_changed\"/>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkRevealer\" id=\"revealer\">\n                    <child>\n                      <object class=\"GtkLabel\" id=\"message_label\">\n                        <property name=\"halign\">fill</property>\n                        <property name=\"margin-top\">9</property>\n                        <property name=\"wrap\">true</property>\n                        <property name=\"xalign\">0</property>\n                        <style>\n                          <class name=\"error\"/>\n                        </style>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\" id=\"add_button\">\n                    <property name=\"use-underline\">true</property>\n                    <property name=\"halign\">center</property>\n                    <property name=\"margin-top\">15</property>\n                    <property name=\"margin-bottom\">18</property>\n                    <property name=\"sensitive\">false</property>\n                    <signal name=\"clicked\" handler=\"add_network\"/>\n                    <style>\n                      <class name=\"pill\"/>\n                      <class name=\"suggested-action\"/>\n                    </style>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <property name=\"scope\">managed</property>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Escape</property>\n            <property name=\"action\">action(window.close)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/menus/member-menu.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <object class=\"GtkPopoverMenu\" id=\"popover_menu\">\n    <property name=\"halign\">start</property>\n    <property name=\"has-arrow\">false</property>\n    <property name=\"menu-model\">menu_model</property>\n    <menu id=\"menu_model\">\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Approve</attribute>\n          <attribute name=\"action\">member.approve</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Reject</attribute>\n          <attribute name=\"action\">member.reject</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">Copy IPv_4 Address</attribute>\n          <attribute name=\"action\">member.copy-ipv4</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">Copy IPv_6 Address</attribute>\n          <attribute name=\"action\">member.copy-ipv6</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Copy Client ID</attribute>\n          <attribute name=\"action\">member.copy-id</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\" comments=\"This action removes the selected member from the network.\">_Evict</attribute>\n          <attribute name=\"action\">member.evict</attribute>\n          <attribute name=\"accel\">Delete</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Details</attribute>\n          <attribute name=\"action\">member.details</attribute>\n          <attribute name=\"accel\">F9</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n    </menu>\n  </object>\n</interface>\n"
  },
  {
    "path": "data/ui/menus/network-list-menu.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <object class=\"GtkPopoverMenu\" id=\"popover_menu\">\n    <property name=\"halign\">start</property>\n    <property name=\"has-arrow\">false</property>\n    <property name=\"menu-model\">menu_model</property>\n    <menu id=\"menu_model\">\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Join Network…</attribute>\n          <attribute name=\"action\">win.join-network</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Create Network…</attribute>\n          <attribute name=\"action\">win.create-network</attribute>\n        </item>\n      </section>\n    </menu>\n  </object>\n</interface>\n"
  },
  {
    "path": "data/ui/menus/network-menu.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <object class=\"GtkPopoverMenu\" id=\"popover_menu\">\n    <property name=\"halign\">start</property>\n    <property name=\"has-arrow\">false</property>\n    <property name=\"menu-model\">menu_model</property>\n    <menu id=\"menu_model\">\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Go Online</attribute>\n          <attribute name=\"action\">network.go-online</attribute>\n          <attribute name=\"accel\">Return</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Go Offline</attribute>\n          <attribute name=\"action\">network.go-offline</attribute>\n          <attribute name=\"accel\">Return</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Leave</attribute>\n          <attribute name=\"action\">network.leave</attribute>\n          <attribute name=\"accel\">Delete</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Delete</attribute>\n          <attribute name=\"action\">network.delete</attribute>\n          <attribute name=\"accel\">Delete</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">Change _Access…</attribute>\n          <attribute name=\"action\">network.change-access</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">Change _Password…</attribute>\n          <attribute name=\"action\">network.change-password</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Copy Network ID</attribute>\n          <attribute name=\"action\">network.copy-id</attribute>\n        </item>\n      </section>\n      <section>\n        <item>\n          <attribute name=\"label\" translatable=\"yes\">_Details</attribute>\n          <attribute name=\"action\">network.details</attribute>\n          <attribute name=\"accel\">F9</attribute>\n          <attribute name=\"hidden-when\">action-disabled</attribute>\n        </item>\n      </section>\n    </menu>\n  </object>\n</interface>\n"
  },
  {
    "path": "data/ui/network-list.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiNetworkList\" parent=\"AdwBin\">\n    <property name=\"name\">network-list</property>\n    <child>\n      <object class=\"GtkScrolledWindow\" id=\"scrolled_window\">\n        <child>\n          <object class=\"GtkListView\" id=\"list_view\">\n            <property name=\"tab-behavior\">item</property>\n            <property name=\"factory\">\n              <object class=\"GtkBuilderListItemFactory\">\n                <property name=\"resource\">/com/github/ztefn/haguichi/ui/widgets/network-list-item.ui</property>\n              </object>\n            </property>\n            <child>\n              <object class=\"GtkShortcutController\">\n                <child>\n                  <object class=\"GtkShortcut\">\n                    <property name=\"trigger\">Menu</property>\n                    <property name=\"action\">action(row.context-menu)</property>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkShortcut\">\n                    <property name=\"trigger\">&lt;Shift&gt;F10</property>\n                    <property name=\"action\">action(row.context-menu)</property>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkShortcut\">\n                    <property name=\"trigger\">Right</property>\n                    <property name=\"action\">action(row.expand)</property>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkShortcut\">\n                    <property name=\"trigger\">Left</property>\n                    <property name=\"action\">action(row.collapse)</property>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkShortcut\">\n                    <property name=\"trigger\">Delete</property>\n                    <property name=\"action\">action(row.delete)</property>\n                  </object>\n                </child>\n              </object>\n            </child>\n            <signal name=\"activate\" handler=\"on_activate\"/>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/preferences.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiPreferences\" parent=\"AdwPreferencesDialog\">\n    <property name=\"name\">preferences</property>\n    <child>\n      <object class=\"AdwPreferencesPage\" id=\"general_page\">\n        <property name=\"title\" translatable=\"yes\">General</property>\n        <child>\n          <object class=\"AdwPreferencesGroup\">\n            <property name=\"title\" translatable=\"no\">Hamachi</property>\n            <child>\n              <object class=\"AdwActionRow\" id=\"configuration\">\n                <property name=\"title\" translatable=\"yes\">Configuration</property>\n                <property name=\"subtitle-selectable\">true</property>\n                <property name=\"use-underline\">true</property>\n                <child>\n                  <object class=\"GtkMenuButton\">\n                    <property name=\"valign\">center</property>\n                    <property name=\"icon-name\">document-save-symbolic</property>\n                    <property name=\"tooltip-text\" translatable=\"yes\">Backup</property>\n                    <property name=\"menu-model\">backup_menu</property>\n                    <style>\n                      <class name=\"flat\"/>\n                    </style>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkButton\">\n                    <property name=\"action-name\">config.open</property>\n                    <property name=\"icon-name\">folder-open-symbolic</property>\n                    <property name=\"tooltip-text\" translatable=\"yes\">Open Folder</property>\n                    <property name=\"valign\">center</property>\n                    <style>\n                      <class name=\"flat\"/>\n                    </style>\n                  </object>\n                </child>\n                <style>\n                  <class name=\"property\"/>\n                </style>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwEntryRow\" id=\"nickname\">\n                <property name=\"title\" translatable=\"yes\">Nickname</property>\n                <property name=\"use-underline\">true</property>\n                <property name=\"show-apply-button\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwComboRow\" id=\"protocol\">\n                <property name=\"title\" translatable=\"yes\">_Protocol</property>\n                <property name=\"use-underline\">true</property>\n                <property name=\"model\">\n                  <object class=\"GtkStringList\">\n                    <items>\n                      <item translatable=\"yes\">Both IPv4 and IPv6</item>\n                      <item translatable=\"yes\">IPv4 only</item>\n                      <item translatable=\"yes\">IPv6 only</item>\n                    </items>\n                  </object>\n                </property>\n              </object>\n            </child>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwPreferencesGroup\">\n            <property name=\"title\" translatable=\"yes\">Behavior</property>\n            <child>\n              <object class=\"AdwComboRow\" id=\"update_interval\">\n                <property name=\"title\" translatable=\"yes\">_Network list update interval</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"connect_on_startup\">\n                <property name=\"title\" translatable=\"yes\">_Connect automatically on startup</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"reconnect_on_connection_loss\">\n                <property name=\"title\" translatable=\"yes\">_Reconnect automatically when the connection is lost</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"disconnect_on_quit\">\n                <property name=\"title\" translatable=\"yes\">_Disconnect on quit</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n          </object>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwPreferencesPage\" id=\"commands_page\">\n        <property name=\"title\" translatable=\"yes\">Commands</property>\n        <child>\n          <object class=\"HaguichiCommandsEditor\" id=\"commands_editor\"/>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwPreferencesPage\" id=\"desktop_page\">\n        <property name=\"title\" translatable=\"yes\" comments=\"In this context meaning &quot;work environment&quot;.\">Desktop</property>\n        <child>\n          <object class=\"AdwPreferencesGroup\">\n            <property name=\"title\" translatable=\"yes\">Appearance</property>\n            <child>\n              <object class=\"AdwActionRow\">\n                <property name=\"title\" translatable=\"yes\">_Style</property>\n                <property name=\"use-underline\">true</property>\n                <child>\n                  <object class=\"GtkBox\">\n                    <property name=\"css-name\">styleselector</property>\n                    <property name=\"orientation\">horizontal</property>\n                    <property name=\"halign\">end</property>\n                    <property name=\"valign\">center</property>\n                    <property name=\"spacing\">12</property>\n                    <child>\n                      <object class=\"GtkCheckButton\" id=\"system\">\n                        <style>\n                          <class name=\"system\"/>\n                        </style>\n                        <property name=\"hexpand\">true</property>\n                        <property name=\"halign\">center</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Follow System</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkCheckButton\" id=\"light\">\n                        <style>\n                          <class name=\"light\"/>\n                        </style>\n                        <property name=\"hexpand\">true</property>\n                        <property name=\"halign\">center</property>\n                        <property name=\"group\">system</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Light</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkCheckButton\" id=\"dark\">\n                        <style>\n                          <class name=\"dark\"/>\n                        </style>\n                        <property name=\"hexpand\">true</property>\n                        <property name=\"halign\">center</property>\n                        <property name=\"group\">system</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Dark</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"show_indicator\">\n                <property name=\"title\" translatable=\"yes\">Show _indicator</property>\n                <property name=\"use-underline\">true</property>\n                <property name=\"visible\">false</property>\n              </object>\n            </child>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwPreferencesGroup\">\n            <property name=\"title\" translatable=\"yes\">Notifications</property>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"notify_on_connection_loss\">\n                <property name=\"title\" translatable=\"yes\">Display notification when the connection is l_ost</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"notify_on_member_join\">\n                <property name=\"title\" translatable=\"yes\">Display notification when a member _joins</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"notify_on_member_leave\">\n                <property name=\"title\" translatable=\"yes\">Display notification when a member _leaves</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"notify_on_member_online\">\n                <property name=\"title\" translatable=\"yes\">Display notification when a member comes o_nline</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"AdwSwitchRow\" id=\"notify_on_member_offline\">\n                <property name=\"title\" translatable=\"yes\">Display notification when a member goes o_ffline</property>\n                <property name=\"use-underline\">true</property>\n              </object>\n            </child>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n  <menu id=\"backup_menu\">\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Save a Backup…</attribute>\n        <attribute name=\"action\">config.save</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Restore from Backup…</attribute>\n        <attribute name=\"action\">config.restore</attribute>\n      </item>\n    </section>\n  </menu>\n</interface>\n"
  },
  {
    "path": "data/ui/shortcuts-dialog.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <object class=\"AdwShortcutsDialog\" id=\"shortcuts\">\n    <child>\n      <object class=\"AdwShortcutsSection\">\n        <property name=\"title\" translatable=\"yes\">General</property>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">F1</property>\n            <property name=\"title\" translatable=\"yes\">Show help</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">F2</property>\n            <property name=\"title\" translatable=\"yes\">Show client information</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">F10</property>\n            <property name=\"title\" translatable=\"yes\">Open menu</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;comma</property>\n            <property name=\"title\" translatable=\"yes\">Preferences</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;question</property>\n            <property name=\"title\" translatable=\"yes\">Keyboard shortcuts</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;Q</property>\n            <property name=\"title\" translatable=\"yes\">Quit</property>\n          </object>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwShortcutsSection\">\n        <property name=\"title\" translatable=\"yes\">Connection</property>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;O</property>\n            <property name=\"title\" translatable=\"yes\">Connect</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;D</property>\n            <property name=\"title\" translatable=\"yes\">Disconnect</property>\n          </object>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwShortcutsSection\">\n        <property name=\"title\" translatable=\"yes\">Network List</property>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;J</property>\n            <property name=\"title\" translatable=\"yes\">Join a network</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;N</property>\n            <property name=\"title\" translatable=\"yes\">Create a network</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">F5 &lt;Primary&gt;R</property>\n            <property name=\"title\" translatable=\"yes\">Refresh</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;F</property>\n            <property name=\"title\" translatable=\"yes\">Search</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;M</property>\n            <property name=\"title\" translatable=\"yes\">Show/hide offline members</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;bracketleft</property>\n            <property name=\"title\" translatable=\"yes\">Expand all networks</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;bracketright</property>\n            <property name=\"title\" translatable=\"yes\">Collapse all networks</property>\n          </object>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwShortcutsSection\">\n        <property name=\"title\" translatable=\"yes\">Commands</property>\n        <child>\n          <object class=\"AdwShortcutsItem\">\n            <property name=\"accelerator\">&lt;Primary&gt;1...9</property>\n            <property name=\"title\" translatable=\"yes\">Execute command</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </object>\n</interface>\n"
  },
  {
    "path": "data/ui/shortcuts-window.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <object class=\"GtkShortcutsWindow\" id=\"shortcuts\">\n    <property name=\"modal\">true</property>\n    <child>\n      <object class=\"GtkShortcutsSection\">\n        <property name=\"section-name\">shortcuts</property>\n        <child>\n          <object class=\"GtkShortcutsGroup\">\n            <property name=\"title\" translatable=\"yes\">General</property>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">F1</property>\n                <property name=\"title\" translatable=\"yes\">Show help</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">F2</property>\n                <property name=\"title\" translatable=\"yes\">Show client information</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">F10</property>\n                <property name=\"title\" translatable=\"yes\">Open menu</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;O</property>\n                <property name=\"title\" translatable=\"yes\">Connect</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;D</property>\n                <property name=\"title\" translatable=\"yes\">Disconnect</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;comma</property>\n                <property name=\"title\" translatable=\"yes\">Preferences</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;question</property>\n                <property name=\"title\" translatable=\"yes\">Keyboard shortcuts</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;Q</property>\n                <property name=\"title\" translatable=\"yes\">Quit</property>\n              </object>\n            </child>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcutsGroup\">\n            <property name=\"title\" translatable=\"yes\">Network List</property>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;J</property>\n                <property name=\"title\" translatable=\"yes\">Join a network</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;N</property>\n                <property name=\"title\" translatable=\"yes\">Create a network</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;R F5</property>\n                <property name=\"title\" translatable=\"yes\">Refresh</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;F</property>\n                <property name=\"title\" translatable=\"yes\">Search</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;M</property>\n                <property name=\"title\" translatable=\"yes\">Show/hide offline members</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;bracketleft</property>\n                <property name=\"title\" translatable=\"yes\">Expand all networks</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;bracketright</property>\n                <property name=\"title\" translatable=\"yes\">Collapse all networks</property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkShortcutsShortcut\">\n                <property name=\"accelerator\">&lt;Primary&gt;1...9</property>\n                <property name=\"title\" translatable=\"yes\">Execute command</property>\n              </object>\n            </child>\n          </object>\n        </child>\n      </object>\n    </child>\n  </object>\n</interface>\n"
  },
  {
    "path": "data/ui/sidebar.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiSidebar\" parent=\"AdwBin\">\n    <child>\n      <object class=\"GtkScrolledWindow\" id=\"scrolled_window\">\n        <property name=\"vadjustment\">\n          <object class=\"GtkAdjustment\">\n            <signal name=\"value_changed\" handler=\"set_reveal_sidebar_title\"/>\n          </object>\n        </property>\n        <child>\n          <object class=\"GtkStack\" id=\"stack\">\n            <property name=\"hhomogeneous\">false</property>\n            <property name=\"vhomogeneous\">false</property>\n            <child>\n              <object class=\"GtkStackPage\">\n                <property name=\"name\">Information</property>\n                <property name=\"child\">\n                  <object class=\"HaguichiSidebarPage\">\n                    <property name=\"heading\" translatable=\"yes\">Information</property>\n                    <property name=\"heading-selectable\">false</property>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"account_row\">\n                        <property name=\"title\" translatable=\"yes\">Account</property>\n                        <property name=\"show-copy\">false</property>\n                        <child>\n                          <object class=\"GtkButton\" id=\"attach_button\">\n                            <property name=\"action-name\">win.attach</property>\n                            <property name=\"icon-name\">mail-attachment-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Attach</property>\n                            <property name=\"valign\">center</property>\n                            <property name=\"visible\">false</property>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkButton\" id=\"cancel_button\">\n                            <property name=\"action-name\">win.attach-cancel</property>\n                            <property name=\"icon-name\">action-unavailable-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Cancel</property>\n                            <property name=\"valign\">center</property>\n                            <property name=\"visible\">false</property>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"client_id_row\">\n                        <property name=\"title\" translatable=\"yes\">Client ID</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"client_ipv4_row\">\n                        <property name=\"title\" translatable=\"yes\">IPv4 Address</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"client_ipv6_row\">\n                        <property name=\"title\" translatable=\"yes\">IPv6 Address</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"hamachi_row\">\n                        <property name=\"title\" translatable=\"yes\">Hamachi Version</property>\n                      </object>\n                    </child>\n                  </object>\n                </property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkStackPage\">\n                <property name=\"name\">Network</property>\n                <property name=\"child\">\n                  <object class=\"HaguichiSidebarPage\" id=\"network_page\">\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"network_status_row\">\n                        <property name=\"title\" translatable=\"yes\">Status</property>\n                        <property name=\"show-copy\">false</property>\n                        <child>\n                          <object class=\"GtkButton\" id=\"network_leave_button\">\n                            <property name=\"icon-name\">application-exit-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Leave Network</property>\n                            <property name=\"valign\">center</property>\n                            <signal name=\"clicked\" handler=\"on_network_leave\"/>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkButton\" id=\"network_delete_button\">\n                            <property name=\"icon-name\">user-trash-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Delete Network</property>\n                            <property name=\"valign\">center</property>\n                            <signal name=\"clicked\" handler=\"on_network_delete\"/>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"network_id_row\">\n                        <property name=\"title\" translatable=\"yes\">Network ID</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"network_owner_row\">\n                        <property name=\"title\" translatable=\"yes\">Owner</property>\n                        <child>\n                          <object class=\"GtkButton\" id=\"network_password_button\">\n                            <property name=\"icon-name\">dialog-password-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Change Password</property>\n                            <property name=\"valign\">center</property>\n                            <signal name=\"clicked\" handler=\"on_network_change_password\"/>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"network_members_row\">\n                        <property name=\"title\" translatable=\"yes\">Members</property>\n                        <property name=\"show-copy\">false</property>\n                        <child>\n                          <object class=\"GtkButton\" id=\"network_access_button\">\n                            <property name=\"tooltip-text\" translatable=\"yes\">Change Access</property>\n                            <property name=\"valign\">center</property>\n                            <signal name=\"clicked\" handler=\"on_network_change_access\"/>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"network_capacity_row\">\n                        <property name=\"title\" translatable=\"yes\">Capacity</property>\n                        <property name=\"show-copy\">false</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkButton\" id=\"network_go_online_button\">\n                        <property name=\"label\" translatable=\"yes\">_Go Online</property>\n                        <property name=\"use-underline\">true</property>\n                        <property name=\"can-shrink\">true</property>\n                        <property name=\"halign\">center</property>\n                        <signal name=\"clicked\" handler=\"on_network_go_online\"/>\n                        <style>\n                          <class name=\"pill\"/>\n                          <class name=\"suggested-action\"/>\n                        </style>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkButton\" id=\"network_go_offline_button\">\n                        <property name=\"label\" translatable=\"yes\">_Go Offline</property>\n                        <property name=\"use-underline\">true</property>\n                        <property name=\"can-shrink\">true</property>\n                        <property name=\"halign\">center</property>\n                        <signal name=\"clicked\" handler=\"on_network_go_offline\"/>\n                        <style>\n                          <class name=\"pill\"/>\n                        </style>\n                      </object>\n                    </child>\n                  </object>\n                </property>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkStackPage\">\n                <property name=\"name\">Member</property>\n                <property name=\"child\">\n                  <object class=\"HaguichiSidebarPage\" id=\"member_page\">\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_status_row\">\n                        <property name=\"title\" translatable=\"yes\">Status</property>\n                        <property name=\"show-copy\">false</property>\n                        <child>\n                          <object class=\"GtkMenuButton\" id=\"member_command_menubutton\">\n                            <property name=\"icon-name\">computer-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Commands</property>\n                            <property name=\"valign\">center</property>\n                            <style>\n                              <class name=\"flat\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_id_row\">\n                        <property name=\"title\" translatable=\"yes\">Client ID</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_ipv4_row\">\n                        <property name=\"title\" translatable=\"yes\">IPv4 Address</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_ipv6_row\">\n                        <property name=\"title\" translatable=\"yes\">IPv6 Address</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_tunnel_row\">\n                        <property name=\"title\" translatable=\"yes\">Tunnel</property>\n                      </object>\n                    </child>\n                    <child type=\"row\">\n                      <object class=\"HaguichiSidebarRow\" id=\"member_connection_row\">\n                        <property name=\"title\" translatable=\"yes\">Connection</property>\n                        <property name=\"show-copy\">false</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkButton\" id=\"member_approve_button\">\n                        <property name=\"label\" translatable=\"yes\">_Approve</property>\n                        <property name=\"use-underline\">true</property>\n                        <property name=\"can-shrink\">true</property>\n                        <property name=\"halign\">center</property>\n                        <signal name=\"clicked\" handler=\"on_member_approve\"/>\n                        <style>\n                          <class name=\"success\"/>\n                          <class name=\"pill\"/>\n                        </style>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkButton\" id=\"member_reject_button\">\n                        <property name=\"label\" translatable=\"yes\">_Reject</property>\n                        <property name=\"use-underline\">true</property>\n                        <property name=\"can-shrink\">true</property>\n                        <property name=\"halign\">center</property>\n                        <signal name=\"clicked\" handler=\"on_member_reject\"/>\n                        <style>\n                          <class name=\"error\"/>\n                          <class name=\"pill\"/>\n                        </style>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkButton\" id=\"member_evict_button\">\n                        <property name=\"label\" translatable=\"yes\">_Evict</property>\n                        <property name=\"use-underline\">true</property>\n                        <property name=\"can-shrink\">true</property>\n                        <property name=\"halign\">center</property>\n                        <signal name=\"clicked\" handler=\"on_member_evict\"/>\n                        <style>\n                          <class name=\"error\"/>\n                          <class name=\"pill\"/>\n                        </style>\n                      </object>\n                    </child>\n                  </object>\n                </property>\n              </object>\n            </child>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/command-entry-row.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiCommandEntryRow\" parent=\"AdwEntryRow\">\n    <child type=\"suffix\">\n      <object class=\"GtkMenuButton\" id=\"menu_button\">\n        <property name=\"icon-name\">insert-text-symbolic</property>\n        <property name=\"tooltip-text\" translatable=\"yes\">Command Variables</property>\n        <property name=\"valign\">center</property>\n        <property name=\"popover\">\n          <object class=\"GtkPopover\">\n            <child>\n              <object class=\"GtkGrid\">\n                <child>\n                  <object class=\"GtkLabel\">\n                    <property name=\"label\" translatable=\"yes\">Command Variables</property>\n                    <property name=\"halign\">center</property>\n                    <layout>\n                      <property name=\"column\">0</property>\n                      <property name=\"column-span\">2</property>\n                      <property name=\"row\">0</property>\n                    </layout>\n                    <style>\n                      <class name=\"title-4\"/>\n                    </style>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkBox\">\n                    <property name=\"orientation\">vertical</property>\n                    <layout>\n                      <property name=\"column\">0</property>\n                      <property name=\"row\">1</property>\n                    </layout>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"address_var\">\n                        <property name=\"title\" translatable=\"yes\">Address</property>\n                        <property name=\"variable\">%A</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"nickname_var\">\n                        <property name=\"title\" translatable=\"yes\">Nickname</property>\n                        <property name=\"variable\">%N</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"client_id_var\">\n                        <property name=\"title\" translatable=\"yes\">Client ID</property>\n                        <property name=\"variable\">%ID</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child>\n                  <object class=\"GtkBox\">\n                    <property name=\"orientation\">vertical</property>\n                    <layout>\n                      <property name=\"column\">1</property>\n                      <property name=\"row\">1</property>\n                    </layout>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"terminal_var\">\n                        <property name=\"title\" translatable=\"yes\">Terminal Emulator</property>\n                        <property name=\"variable\">%TERMINAL</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"file_manager_var\">\n                        <property name=\"title\" translatable=\"yes\">File Manager</property>\n                        <property name=\"variable\">%FILEMANAGER</property>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"HaguichiCommandVariableButton\" id=\"remote_desktop_var\">\n                        <property name=\"title\" translatable=\"yes\">Remote Desktop Viewer</property>\n                        <property name=\"variable\">%REMOTEDESKTOP</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n              </object>\n            </child>\n          </object>\n        </property>\n        <style>\n          <class name=\"command-variables\"/>\n          <class name=\"flat\"/>\n        </style>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/command-variable-button.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiCommandVariableButton\" parent=\"GtkButton\">\n    <signal name=\"clicked\" handler=\"on_insert_value\"/>\n    <accessibility>\n      <relation name=\"labelled-by\">title_label</relation>\n      <relation name=\"described-by\">variable_label</relation>\n    </accessibility>\n    <style>\n      <class name=\"flat\"/>\n    </style>\n    <child>\n      <object class=\"GtkBox\">\n        <property name=\"orientation\">vertical</property>\n        <child>\n          <object class=\"GtkLabel\" id=\"title_label\">\n            <property name=\"halign\">start</property>\n            <style>\n              <class name=\"dim-label\"/>\n              <class name=\"caption\"/>\n            </style>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkLabel\" id=\"variable_label\">\n            <property name=\"halign\">start</property>\n            <style>\n              <class name=\"body\"/>\n            </style>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/commands-editor-row.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiCommandsEditorRow\" parent=\"AdwActionRow\">\n    <property name=\"title-lines\">1</property>\n    <property name=\"subtitle-lines\">1</property>\n    <property name=\"use-markup\">false</property>\n    <property name=\"use-underline\">true</property>\n    <property name=\"activatable\">true</property>\n    <child type=\"prefix\">\n      <object class=\"GtkImage\" id=\"drag_handle\">\n        <style>\n          <class name=\"dim-label\"/>\n        </style>\n      </object>\n    </child>\n    <child type=\"suffix\">\n      <object class=\"GtkImage\" id=\"default_emblem\">\n        <property name=\"tooltip-text\" translatable=\"yes\">Default Action</property>\n        <property name=\"has-tooltip\">true</property>\n        <property name=\"margin-start\">6</property>\n        <property name=\"margin-end\">12</property>\n        <style>\n          <class name=\"accent\"/>\n        </style>\n      </object>\n    </child>\n    <child type=\"suffix\">\n      <object class=\"GtkSwitch\" id=\"command_switch\">\n        <property name=\"valign\">center</property>\n      </object>\n    </child>\n    <child type=\"suffix\">\n      <object class=\"GtkMenuButton\" id=\"command_menu_button\">\n        <property name=\"icon-name\">view-more-symbolic</property>\n        <property name=\"tooltip-text\" translatable=\"yes\">Options</property>\n        <property name=\"has-tooltip\">false</property>\n        <property name=\"menu-model\">command_row_menu</property>\n        <property name=\"valign\">center</property>\n        <style>\n          <class name=\"flat\"/>\n        </style>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkDragSource\" id=\"drag_source\">\n        <property name=\"actions\">move</property>\n        <signal name=\"prepare\" handler=\"on_drag_prepare\"/>\n        <signal name=\"drag-begin\" handler=\"on_drag_begin\"/>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkDropTarget\">\n        <property name=\"actions\">move</property>\n        <property name=\"formats\">HaguichiCommandsEditorRow</property>\n        <signal name=\"drop\" handler=\"on_drop\"/>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">Menu</property>\n            <property name=\"action\">action(row.open-menu)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Shift&gt;F10</property>\n            <property name=\"action\">action(row.open-menu)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n  </template>\n  <menu id=\"command_row_menu\">\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Edit…</attribute>\n        <attribute name=\"action\">row.edit</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Du_plicate…</attribute>\n        <attribute name=\"action\">row.duplicate</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Move _Up</attribute>\n        <attribute name=\"action\">row.move-up</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Move _Down</attribute>\n        <attribute name=\"action\">row.move-down</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Set As Default Action</attribute>\n        <attribute name=\"action\">row.set-default</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Remove</attribute>\n        <attribute name=\"action\">row.remove</attribute>\n      </item>\n    </section>\n  </menu>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/commands-editor.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiCommandsEditor\" parent=\"AdwPreferencesGroup\">\n    <child type=\"header-suffix\">\n      <object class=\"GtkButton\" id=\"restore_button\">\n        <signal name=\"clicked\" handler=\"on_restore_commands\"/>\n        <property name=\"name\">restore-commands-button</property>\n        <property name=\"valign\">center</property>\n        <property name=\"child\">\n          <object class=\"AdwButtonContent\">\n            <property name=\"icon-name\">view-refresh-symbolic</property>\n            <property name=\"label\" translatable=\"yes\">_Restore Default</property>\n            <property name=\"use-underline\">true</property>\n          </object>\n        </property>\n        <style>\n          <class name=\"flat\"/>\n        </style>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkListBox\" id=\"list_box\">\n        <signal name=\"row-activated\" handler=\"on_row_activated\"/>\n        <property name=\"selection-mode\">none</property>\n        <child>\n          <object class=\"GtkListBoxRow\">\n            <child>\n              <object class=\"GtkButton\">\n                <signal name=\"clicked\" handler=\"on_add_command\"/>\n                <property name=\"name\">add-command-button</property>\n                <property name=\"can-focus\">false</property>\n                <property name=\"child\">\n                  <object class=\"AdwButtonContent\">\n                    <property name=\"icon-name\">list-add-symbolic</property>\n                    <property name=\"label\" translatable=\"yes\">_Add Command</property>\n                    <property name=\"use-underline\">true</property>\n                  </object>\n                </property>\n                <style>\n                  <class name=\"flat\"/>\n                </style>\n              </object>\n            </child>\n          </object>\n        </child>\n        <style>\n          <class name=\"boxed-list\"/>\n        </style>\n      </object>\n    </child>\n  </template>\n  <!-- this menu is only used to add labels for the default commands from gschema to the gettext catalog -->\n  <menu id=\"default_commands_menu\">\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Browse Shares</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_View Remote Desktop</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Ping</attribute>\n      </item>\n    </section>\n  </menu>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/network-list-item.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"GtkListItem\">\n    <property name=\"focusable\">true</property>\n    <property name=\"child\">\n      <object class=\"GtkTreeExpander\" id=\"expander\">\n        <property name=\"focusable\">false</property>\n        <binding name=\"list-row\">\n          <lookup name=\"item\">GtkListItem</lookup>\n        </binding>\n        <binding name=\"hide-expander\">\n          <lookup name=\"hide-expander\" type=\"HaguichiNetwork\">\n            <lookup name=\"item\">expander</lookup>\n          </lookup>\n        </binding>\n        <property name=\"child\">\n          <object class=\"GtkBox\">\n            <child>\n              <object class=\"GtkImage\">\n                <property name=\"margin-end\">6</property>\n                <property name=\"pixel-size\">10</property>\n                <property name=\"valign\">center</property>\n                <binding name=\"css-classes\">\n                  <lookup name=\"node-css-classes\" type=\"HaguichiNetwork\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n                <binding name=\"css-classes\">\n                  <lookup name=\"node-css-classes\" type=\"HaguichiMember\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n              </object>\n            </child>\n            <child>\n              <object class=\"GtkLabel\">\n                <property name=\"ellipsize\">end</property>\n                <property name=\"use-markup\">true</property>\n                <binding name=\"label\">\n                  <lookup name=\"label\" type=\"HaguichiNetwork\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n                <binding name=\"label\">\n                  <lookup name=\"label\" type=\"HaguichiMember\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n                <binding name=\"css-classes\">\n                  <lookup name=\"label-css-classes\" type=\"HaguichiNetwork\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n                <binding name=\"css-classes\">\n                  <lookup name=\"label-css-classes\" type=\"HaguichiMember\">\n                    <lookup name=\"item\">expander</lookup>\n                  </lookup>\n                </binding>\n              </object>\n            </child>\n          </object>\n        </property>\n      </object>\n    </property>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/sidebar-page.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiSidebarPage\" parent=\"GtkBox\">\n    <property name=\"orientation\">vertical</property>\n    <property name=\"spacing\">15</property>\n    <property name=\"margin-start\">12</property>\n    <property name=\"margin-end\">12</property>\n    <property name=\"margin-bottom\">15</property>\n    <child>\n      <object class=\"GtkLabel\" id=\"label\">\n        <property name=\"margin-start\">26</property>\n        <property name=\"margin-end\">26</property>\n        <property name=\"margin-bottom\">2</property>\n        <property name=\"selectable\">true</property>\n        <property name=\"wrap\">true</property>\n        <property name=\"wrap-mode\">char</property>\n        <style>\n          <class name=\"title-2\"/>\n        </style>\n      </object>\n    </child>\n    <child>\n      <object class=\"GtkListBox\" id=\"list_box\">\n        <property name=\"selection-mode\">none</property>\n        <style>\n          <class name=\"navigation-sidebar\"/>\n        </style>\n      </object>\n    </child>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/widgets/sidebar-row.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiSidebarRow\" parent=\"AdwActionRow\">\n    <property name=\"subtitle-selectable\">true</property>\n    <property name=\"use-markup\">false</property>\n    <property name=\"focusable\">false</property>\n    <child>\n      <object class=\"GtkButton\" id=\"copy_button\">\n        <property name=\"icon-name\">edit-copy-symbolic</property>\n        <property name=\"tooltip-text\" translatable=\"yes\">Copy</property>\n        <property name=\"valign\">center</property>\n        <signal name=\"clicked\" handler=\"on_copy_value\"/>\n        <style>\n          <class name=\"flat\"/>\n        </style>\n      </object>\n    </child>\n    <style>\n      <class name=\"property\"/>\n    </style>\n  </template>\n</interface>\n"
  },
  {
    "path": "data/ui/window.ui",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<interface>\n  <template class=\"HaguichiWindow\" parent=\"AdwApplicationWindow\">\n    <property name=\"name\">main-window</property>\n    <property name=\"default-width\">600</property>\n    <property name=\"default-height\">480</property>\n    <property name=\"width-request\">320</property>\n    <property name=\"height-request\">200</property>\n    <style>\n      <class name=\"view\"/>\n    </style>\n    <child>\n      <object class=\"GtkShortcutController\">\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;O</property>\n            <property name=\"action\">action(win.connect)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;D</property>\n            <property name=\"action\">action(win.disconnect)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;J</property>\n            <property name=\"action\">action(win.join-network)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;N</property>\n            <property name=\"action\">action(win.create-network)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;R</property>\n            <property name=\"action\">action(win.refresh)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">F5</property>\n            <property name=\"action\">action(win.refresh)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;F</property>\n            <property name=\"action\">action(win.start-search)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">F9</property>\n            <property name=\"action\">action(win.toggle-sidebar)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">F12</property>\n            <property name=\"action\">action(win.cycle-mode)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;M</property>\n            <property name=\"action\">action(win.show-offline-members)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;bracketleft</property>\n            <property name=\"action\">action(win.expand-all-networks)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;bracketright</property>\n            <property name=\"action\">action(win.collapse-all-networks)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;comma</property>\n            <property name=\"action\">action(win.preferences)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;question</property>\n            <property name=\"action\">action(win.shortcuts)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">F1</property>\n            <property name=\"action\">action(win.help)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">F2</property>\n            <property name=\"action\">action(win.info)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;Q</property>\n            <property name=\"action\">action(win.quit)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;1</property>\n            <property name=\"action\">action(win.run-command-1)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;2</property>\n            <property name=\"action\">action(win.run-command-2)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;3</property>\n            <property name=\"action\">action(win.run-command-3)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;4</property>\n            <property name=\"action\">action(win.run-command-4)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;5</property>\n            <property name=\"action\">action(win.run-command-5)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;6</property>\n            <property name=\"action\">action(win.run-command-6)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;7</property>\n            <property name=\"action\">action(win.run-command-7)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;8</property>\n            <property name=\"action\">action(win.run-command-8)</property>\n          </object>\n        </child>\n        <child>\n          <object class=\"GtkShortcut\">\n            <property name=\"trigger\">&lt;Primary&gt;9</property>\n            <property name=\"action\">action(win.run-command-9)</property>\n          </object>\n        </child>\n      </object>\n    </child>\n    <child>\n      <object class=\"AdwBreakpoint\">\n        <condition>max-width: 520sp</condition>\n        <setter object=\"split_view\" property=\"collapsed\">true</setter>\n      </object>\n    </child>\n    <property name=\"content\">\n      <object class=\"AdwToastOverlay\" id=\"toast_overlay\">\n        <child>\n          <object class=\"AdwOverlaySplitView\" id=\"split_view\">\n            <property name=\"min-sidebar-width\">240</property>\n            <property name=\"max-sidebar-width\">320</property>\n            <property name=\"sidebar-width-fraction\">0.475</property>\n            <property name=\"sidebar-position\">end</property>\n            <property name=\"show-sidebar\">false</property>\n            <property name=\"pin-sidebar\">true</property>\n            <property name=\"content\">\n              <object class=\"AdwToolbarView\">\n                <child type=\"top\">\n                  <object class=\"AdwHeaderBar\" id=\"header_bar\">\n                    <property name=\"title-widget\">\n                      <object class=\"AdwWindowTitle\" id=\"window_title\">\n                        <property name=\"title\">Haguichi</property>\n                        <property name=\"subtitle\" translatable=\"yes\">Initializing</property>\n                      </object>\n                    </property>\n                    <child type=\"start\">\n                      <object class=\"GtkButton\" id=\"refresh_button\">\n                        <property name=\"action-name\">win.refresh</property>\n                        <property name=\"icon-name\">view-refresh-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Refresh</property>\n                        <property name=\"valign\">center</property>\n                        <property name=\"visible\">false</property>\n                      </object>\n                    </child>\n                    <child type=\"start\">\n                      <object class=\"GtkToggleButton\" id=\"connect_button\">\n                        <property name=\"name\">connect-button</property>\n                        <property name=\"action-name\">win.connect</property>\n                        <property name=\"icon-name\">system-shutdown-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Connect</property>\n                        <property name=\"valign\">center</property>\n                        <property name=\"visible\">false</property>\n                        <style>\n                          <class name=\"suggested-action\"/>\n                        </style>\n                      </object>\n                    </child>\n                    <child type=\"start\">\n                      <object class=\"GtkToggleButton\" id=\"disconnect_button\">\n                        <property name=\"name\">disconnect-button</property>\n                        <property name=\"active\">true</property>\n                        <property name=\"action-name\">win.disconnect</property>\n                        <property name=\"icon-name\">system-shutdown-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Disconnect</property>\n                        <property name=\"valign\">center</property>\n                        <property name=\"visible\">false</property>\n                        <style>\n                          <class name=\"accent\"/>\n                        </style>\n                      </object>\n                    </child>\n                    <child type=\"start\">\n                      <object class=\"GtkToggleButton\" id=\"search_button\">\n                        <property name=\"icon-name\">edit-find-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Search</property>\n                        <property name=\"active\" bind-source=\"search_bar\" bind-property=\"search_mode_enabled\" bind-flags=\"sync-create\"/>\n                        <property name=\"valign\">center</property>\n                        <property name=\"visible\">false</property>\n                      </object>\n                    </child>\n                    <child type=\"end\">\n                      <object class=\"GtkMenuButton\">\n                        <property name=\"primary\">true</property>\n                        <property name=\"icon-name\">open-menu-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Main Menu</property>\n                        <property name=\"menu-model\">primary_menu</property>\n                        <property name=\"valign\">center</property>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <child type=\"top\">\n                  <object class=\"AdwClamp\">\n                    <property name=\"maximum-size\">400</property>\n                    <property name=\"tightening-threshold\">300</property>\n                    <child>\n                      <object class=\"GtkSearchBar\" id=\"search_bar\">\n                        <property name=\"key-capture-widget\">HaguichiWindow</property>\n                        <property name=\"search_mode_enabled\" bind-source=\"search_button\" bind-property=\"active\" bind-flags=\"sync-create\"/>\n                        <child>\n                          <object class=\"GtkSearchEntry\" id=\"search_entry\">\n                            <property name=\"hexpand\">true</property>\n                            <property name=\"placeholder-text\" translatable=\"yes\">Search networks and members</property>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <property name=\"content\">\n                  <object class=\"GtkOverlay\">\n                    <child type=\"overlay\">\n                      <object class=\"GtkBox\">\n                        <property name=\"orientation\">vertical</property>\n                        <property name=\"halign\">end</property>\n                        <property name=\"valign\">end</property>\n                        <property name=\"margin-end\">15</property>\n                        <property name=\"margin-bottom\">15</property>\n                        <property name=\"spacing\">9</property>\n                        <child>\n                          <object class=\"GtkButton\" id=\"overlay_refresh_button\">\n                            <property name=\"name\">overlay-refresh-button</property>\n                            <property name=\"action-name\">win.refresh</property>\n                            <property name=\"icon-name\">view-refresh-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Refresh</property>\n                            <property name=\"halign\">center</property>\n                            <property name=\"visible\">false</property>\n                            <style>\n                              <class name=\"circular\"/>\n                            </style>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkMenuButton\" id=\"overlay_add_network_button\">\n                            <property name=\"name\">add-network-button</property>\n                            <property name=\"icon-name\">list-add-symbolic</property>\n                            <property name=\"tooltip-text\" translatable=\"yes\">Add Network</property>\n                            <property name=\"direction\">up</property>\n                            <property name=\"menu-model\">add_network_menu</property>\n                            <property name=\"visible\">false</property>\n                            <style>\n                              <class name=\"circular\"/>\n                              <class name=\"suggested-action\"/>\n                            </style>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                    <child>\n                      <object class=\"GtkStack\" id=\"stack\">\n                        <property name=\"transition-type\">crossfade</property>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Initializing</property>\n                            <property name=\"child\">\n                              <object class=\"AdwBin\"/>\n                            </property>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Disconnected</property>\n                            <property name=\"child\">\n                              <object class=\"GtkStack\" id=\"disconnected_stack\">\n                                <child>\n                                  <object class=\"GtkStackPage\">\n                                    <property name=\"name\">empty</property>\n                                    <property name=\"child\">\n                                      <object class=\"AdwBin\"/>\n                                    </property>\n                                  </object>\n                                </child>\n                                <child>\n                                  <object class=\"GtkStackPage\">\n                                    <property name=\"name\">restore</property>\n                                    <property name=\"child\">\n                                      <object class=\"AdwStatusPage\" id=\"restore_status_page\">\n                                        <property name=\"title\" translatable=\"yes\">Hamachi Lost Connection</property>\n                                        <style>\n                                          <class name=\"compact\"/>\n                                          <class name=\"numeric\"/>\n                                        </style>\n                                        <child>\n                                          <object class=\"GtkButton\">\n                                            <property name=\"label\" translatable=\"yes\">_Cancel</property>\n                                            <property name=\"halign\">center</property>\n                                            <property name=\"use-underline\">true</property>\n                                            <signal name=\"clicked\" handler=\"cancel_restore\"/>\n                                            <style>\n                                              <class name=\"pill\"/>\n                                            </style>\n                                          </object>\n                                        </child>\n                                      </object>\n                                    </property>\n                                  </object>\n                                </child>\n                              </object>\n                            </property>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Connecting</property>\n                            <property name=\"child\">\n                              <object class=\"HaguichiThrobber\" id=\"throbber\">\n                                <property name=\"halign\">center</property>\n                                <property name=\"valign\">center</property>\n                                <property name=\"margin-bottom\">12</property>\n                              </object>\n                            </property>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Connected</property>\n                            <property name=\"child\">\n                              <object class=\"GtkStack\" id=\"connected_stack\">\n                                <child>\n                                  <object class=\"GtkStackPage\">\n                                    <property name=\"name\">empty</property>\n                                    <property name=\"child\">\n                                      <object class=\"AdwStatusPage\">\n                                        <property name=\"title\" translatable=\"yes\">You Are Connected!</property>\n                                        <property name=\"description\" translatable=\"yes\">Use the + button to add a network</property>\n                                        <style>\n                                          <class name=\"compact\"/>\n                                        </style>\n                                      </object>\n                                    </property>\n                                  </object>\n                                </child>\n                                <child>\n                                  <object class=\"GtkStackPage\">\n                                    <property name=\"name\">network-list</property>\n                                    <property name=\"child\">\n                                      <object class=\"HaguichiNetworkList\" id=\"network_list\"/>\n                                    </property>\n                                  </object>\n                                </child>\n                                <child>\n                                  <object class=\"GtkStackPage\">\n                                    <property name=\"name\">no-results</property>\n                                    <property name=\"child\">\n                                      <object class=\"AdwStatusPage\">\n                                        <property name=\"title\" translatable=\"yes\">No Results Found</property>\n                                        <property name=\"description\" translatable=\"yes\">Try a different search</property>\n                                        <style>\n                                          <class name=\"compact\"/>\n                                        </style>\n                                      </object>\n                                    </property>\n                                  </object>\n                                </child>\n                              </object>\n                            </property>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Not installed</property>\n                            <property name=\"child\">\n                              <object class=\"AdwStatusPage\" id=\"not_installed_status_page\">\n                                <property name=\"description\" translatable=\"yes\">Please download Hamachi and follow the installation instructions</property>\n                                <style>\n                                  <class name=\"compact\"/>\n                                </style>\n                                <child>\n                                  <object class=\"GtkButton\">\n                                    <property name=\"label\" translatable=\"yes\">_Download</property>\n                                    <property name=\"halign\">center</property>\n                                    <property name=\"use-underline\">true</property>\n                                    <signal name=\"clicked\" handler=\"download_hamachi\"/>\n                                    <style>\n                                      <class name=\"pill\"/>\n                                      <class name=\"suggested-action\"/>\n                                    </style>\n                                  </object>\n                                </child>\n                              </object>\n                            </property>\n                          </object>\n                        </child>\n                        <child>\n                          <object class=\"GtkStackPage\">\n                            <property name=\"name\">Not configured</property>\n                            <property name=\"child\">\n                              <object class=\"AdwStatusPage\">\n                                <property name=\"title\" translatable=\"yes\">Hamachi Is Not Configured</property>\n                                <property name=\"description\" translatable=\"yes\">You need to configure Hamachi before you can connect</property>\n                                <style>\n                                  <class name=\"compact\"/>\n                                </style>\n                                <child>\n                                  <object class=\"GtkButton\" id=\"configure_button\">\n                                    <property name=\"label\" translatable=\"yes\">C_onfigure</property>\n                                    <property name=\"halign\">center</property>\n                                    <property name=\"use-underline\">true</property>\n                                    <signal name=\"clicked\" handler=\"configure_hamachi\"/>\n                                    <style>\n                                      <class name=\"pill\"/>\n                                      <class name=\"suggested-action\"/>\n                                    </style>\n                                  </object>\n                                </child>\n                              </object>\n                            </property>\n                          </object>\n                        </child>\n                      </object>\n                    </child>\n                  </object>\n                </property>\n              </object>\n            </property>\n            <property name=\"sidebar\">\n              <object class=\"AdwToolbarView\">\n                <child type=\"top\">\n                  <object class=\"AdwHeaderBar\">\n                    <property name=\"title-widget\">\n                      <object class=\"GtkRevealer\" id=\"sidebar_title_revealer\">\n                        <property name=\"transition-type\">crossfade</property>\n                        <child>\n                          <object class=\"AdwWindowTitle\" id=\"sidebar_title\">\n                            <property name=\"title\" translatable=\"yes\">Information</property>\n                          </object>\n                        </child>\n                      </object>\n                    </property>\n                    <child type=\"start\">\n                      <object class=\"GtkButton\" id=\"go_back_button\">\n                        <signal name=\"clicked\" handler=\"go_back_button_clicked\"/>\n                        <property name=\"icon-name\">go-previous-symbolic</property>\n                        <property name=\"tooltip-text\" translatable=\"yes\">Network List</property>\n                        <property name=\"valign\">center</property>\n                        <property name=\"visible\" bind-source=\"split_view\" bind-property=\"collapsed\" bind-flags=\"sync-create\"/>\n                      </object>\n                    </child>\n                  </object>\n                </child>\n                <property name=\"content\">\n                  <object class=\"HaguichiSidebar\" id=\"sidebar\"/>\n                </property>\n              </object>\n            </property>\n          </object>\n        </child>\n      </object>\n    </property>\n  </template>\n  <object class=\"GtkSizeGroup\">\n    <property name=\"mode\">vertical</property>\n    <widgets>\n      <widget name=\"window_title\"/>\n      <widget name=\"sidebar_title\"/>\n    </widgets>\n  </object>\n  <menu id=\"primary_menu\">\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Information</attribute>\n        <attribute name=\"action\">win.info</attribute>\n        <attribute name=\"hidden-when\">action-disabled</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Sort by _Name</attribute>\n        <attribute name=\"action\">win.sort-by</attribute>\n        <attribute name=\"target\">name</attribute>\n        <attribute name=\"hidden-when\">action-disabled</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Sort by _Status</attribute>\n        <attribute name=\"action\">win.sort-by</attribute>\n        <attribute name=\"target\">status</attribute>\n        <attribute name=\"hidden-when\">action-disabled</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">Show _Offline Members</attribute>\n        <attribute name=\"action\">win.show-offline-members</attribute>\n        <attribute name=\"hidden-when\">action-disabled</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Preferences</attribute>\n        <attribute name=\"action\">win.preferences</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Keyboard Shortcuts</attribute>\n        <attribute name=\"action\">win.shortcuts</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Help</attribute>\n        <attribute name=\"action\">win.help</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_About Haguichi</attribute>\n        <attribute name=\"action\">win.about</attribute>\n      </item>\n    </section>\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Quit</attribute>\n        <attribute name=\"action\">win.quit</attribute>\n      </item>\n    </section>\n  </menu>\n  <menu id=\"add_network_menu\">\n    <section>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Join Network…</attribute>\n        <attribute name=\"action\">win.join-network</attribute>\n      </item>\n      <item>\n        <attribute name=\"label\" translatable=\"yes\">_Create Network…</attribute>\n        <attribute name=\"action\">win.create-network</attribute>\n      </item>\n    </section>\n  </menu>\n</interface>\n"
  },
  {
    "path": "meson.build",
    "content": "project('Haguichi', ['c', 'vala'],\n          version: '1.5.5',\n    meson_version: '>= 1.3.0',\n  default_options: ['prefix=/usr', 'warning_level=2', 'werror=false'],\n)\n\napp_name     = meson.project_name()\napp_id       = 'com.github.ztefn.' + app_name.to_lower()\napp_version  = meson.project_version()\nbinary_name  = app_name.to_lower()\ngettext_pkg  = app_name.to_lower()\nvala_version = meson.get_compiler('vala').version()\n\nadd_project_arguments(\n  '-DG_LOG_DOMAIN=\"' + app_name + '\"',\n  '-DGETTEXT_PACKAGE=\"' + gettext_pkg + '\"',\n  '-w',\n  language: 'c'\n)\n\nif vala_version.version_compare('>= 0.56.19')\n  add_project_arguments(\n    ['-D', 'VALA_0_56_19'],\n    language: 'vala'\n  )\nendif\n\nconf = configuration_data()\nconf.set('APP_ID',          app_id)\nconf.set('APP_NAME',        app_name)\nconf.set('VERSION',         app_version)\nconf.set('BINARY_NAME',     binary_name)\nconf.set('GETTEXT_PACKAGE', gettext_pkg)\nconf.set('LOCALEDIR',       get_option('prefix') / get_option('localedir'))\nconf.set('VALA_VERSION',    vala_version)\n\ni18n  = import('i18n')\ngnome = import('gnome')\n\nsubdir('data')\nsubdir('po')\nsubdir('src')\n\ngnome.post_install(\n     glib_compile_schemas: true,\n    gtk_update_icon_cache: true,\n  update_desktop_database: true,\n)\n"
  },
  {
    "path": "meson.options",
    "content": "option('for-elementary', type: 'boolean', value: false)\noption('for-ubuntu',     type: 'boolean', value: false)\n"
  },
  {
    "path": "po/LINGUAS",
    "content": "ast\nbg\ncs\nde\nes\nfi\nfr\nhu\nid\nit\nja\nkk\nlt\nnl\npl\npt\npt_BR\nru\nsk\nsv\ntr\nuk\n"
  },
  {
    "path": "po/POTFILES",
    "content": "data/com.github.ztefn.haguichi.desktop.in.in\ndata/com.github.ztefn.haguichi.metainfo.xml.in.in\ndata/ui/dialogs/add-edit-command.ui\ndata/ui/dialogs/attach.ui\ndata/ui/dialogs/change-access.ui\ndata/ui/dialogs/change-password.ui\ndata/ui/dialogs/join-create-network.ui\ndata/ui/menus/member-menu.ui\ndata/ui/menus/network-list-menu.ui\ndata/ui/menus/network-menu.ui\ndata/ui/network-list.ui\ndata/ui/preferences.ui\ndata/ui/shortcuts-dialog.ui\ndata/ui/shortcuts-window.ui\ndata/ui/sidebar.ui\ndata/ui/widgets/command-entry-row.ui\ndata/ui/widgets/command-variable-button.ui\ndata/ui/widgets/commands-editor.ui\ndata/ui/widgets/commands-editor-row.ui\ndata/ui/widgets/network-list-item.ui\ndata/ui/widgets/sidebar-row.ui\ndata/ui/widgets/sidebar-page.ui\ndata/ui/window.ui\nsrc/application.vala\nsrc/bubble.vala\nsrc/command.vala\nsrc/connection.vala\nsrc/controller.vala\nsrc/custom-command.vala\nsrc/dialogs/add-edit-command.vala\nsrc/dialogs/attach.vala\nsrc/dialogs/change-access.vala\nsrc/dialogs/change-password.vala\nsrc/dialogs/confirm.vala\nsrc/dialogs/join-create-network.vala\nsrc/hamachi.vala\nsrc/indicator.vala\nsrc/inhibitor.vala\nsrc/member.vala\nsrc/member-event.vala\nsrc/network.vala\nsrc/network-list.vala\nsrc/preferences.vala\nsrc/session.vala\nsrc/sidebar.vala\nsrc/status.vala\nsrc/status-notifier-item.vala\nsrc/utils.vala\nsrc/widgets/command-entry-row.vala\nsrc/widgets/command-variable-button.vala\nsrc/widgets/commands-editor.vala\nsrc/widgets/commands-editor-row.vala\nsrc/widgets/sidebar-row.vala\nsrc/widgets/sidebar-page.vala\nsrc/window.vala\n"
  },
  {
    "path": "po/README.md",
    "content": "\n  Localisation\n  ============\n\n\n  Generate .pot file\n  ------------------\n\n  Run the following command from your build folder to generate the pot file:\n\n    $ meson compile haguichi-pot\n\n\n  Generate .po files\n  ------------------\n\n  Run the following command from your build folder to generate the po files:\n\n    $ meson compile haguichi-update-po\n\n"
  },
  {
    "path": "po/ast.po",
    "content": "# Asturian translation for haguichi\n# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2018-10-12 07:44+0000\\n\"\n\"Last-Translator: enolp <enolp@softastur.org>\\n\"\n\"Language-Team: Asturian <ast@li.org>\\n\"\n\"Language: ast\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2018-10-12 19:24+0000\\n\"\n\"X-Generator: Launchpad (build 18790)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Xestor de rede Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Carauterístiques:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Llista de redes espandible, que se pue ordenar y onde se pue guetar\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Barra llateral p'acceder fácilmente a los detalles y les aiciones\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"\"\n\"Fai copies de seguranza y restaura la carpeta de configuración de Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Amosar la información del veceru\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\n#, fuzzy\nmsgid \"Search your network list\"\nmsgstr \"Llista de redes espandible, que se pue ordenar y onde se pue guetar\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Xunise a una rede\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etiqueta\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Comandu IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Comandu IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioridá\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Guardar\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Axuntar a la cuenta\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Cuenta\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Incluyir toles redes creaes por esti veceru\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Axuntar\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Camudar nomatu\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Bloquiáu\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Aprobación\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automáticamente\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manualmente\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"C_amudar\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Camudar contraseña\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Contraseña nueva\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID de rede\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Conseña\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Aprobar\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Refugar\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copiar direición IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copiar direición IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copiar ID de veceru\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Desagospiar\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Xunise a la rede…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Crear rede…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Coneutase\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Desconeutase\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Colar\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Desaniciar\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Camudar _nomatu…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Camudar _contraseña…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"Copiar ID de rede\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Xeneral\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuración\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Guardar un respaldu\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Abrir carpeta\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Nomatu\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocolu\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 ya IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Namái IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Namái IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportamientu\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Coneutase automáticamente nel aniciu\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Reconeutase automáticamente cuando se pierda la conexón\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Desconeutase al colar\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Comandos\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Escritoriu\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Aspeutu\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Amosar l'_indicador\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Avisos\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Amosar avisu al perdese la c_onexón\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Amosar avisu cuando se xuna un m_iembru\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Amosar avisu cuando cole un m_iembru\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Amosar avisu cuando tea en llinia un m_iembru\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Amosar avisu cuando tea fuera de llinia un m_iembru\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Guardar respaldu…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Restaurar dende respaldu…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Amusar l'ayuda\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Amosar la información del veceru\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferencies\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Atayos del tecláu\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Colar\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Conexón\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Coneutar\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Desconeutar\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Llista de redes\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Xunise a una rede\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Crear una rede\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Refrescar\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Guetar\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Amosar miembros des/coneutaos\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Espander toles redes\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Contrayer toles redes\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Executar un comandu\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Información\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Axuntar\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Encaboxar\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID de veceru\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Direición IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Direición IPv6\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"La version %s de Hamachi ta obsoleta\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Estáu\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Crear rede\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Crear rede\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Dueñu\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Miembros\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacidá\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Túnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Comandos\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Direición\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Ver escritoriu remotu\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"_Restaurar\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Amestar comandu\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Restolar comparticiones\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Ver escritoriu remotu\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Afitar como aición por defeutu\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Editar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_plicar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"_Xubir\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"_Baxar\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Afitar como aición por defeutu\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Desaniciar\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Aniciando\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\n#, fuzzy\nmsgid \"Search networks and members\"\nmsgstr \"Xestor de rede Hamachi\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Xunise a la rede\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi perdió la conexón\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Encaboxar\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"¡Tas coneutáu!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Usa'l botón + p'amestar una rede\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Baxa Hamachi y sigui les instrucciones d'instalación, por favor\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Baxar\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi nun ta configuráu\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Precises configurar Hamachi enantes que pueas coneutate\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"C_onfigurar\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Información\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Ordenar pel _nome\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Ordenar pel _estáu\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Amosar _miembros fuera de llinia\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferencies\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Atayos del _tecláu\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Ayuda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"Tocante _a Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Colar\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Reconeutar\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Ensin conexóna internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Aniciando sesión\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Fallu al coneutar\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Falló l'aniciu de sesión d'Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Anovando\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Coneutáu\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Xunióse'l miembru\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} xunióse a la rede {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} xunióse na rede {1} y {2} más\"\nmsgstr[1] \"{0} xunióse na rede {1} y otres {2} más\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Coló'l miembru\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} colo de la rede {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} coló de la rede {1} y {2} más\"\nmsgstr[1] \"{0} coló de la rede {1} y otres {2} más\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Miembru en llinia\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} coneutóse na rede {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} coneutóse na rede {1} y {2} más\"\nmsgstr[1] \"{0} coneutóse na rede {1} y otres {2} más\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Miembru fuera de llinia\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} desconeutóse de la rede {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} desconeutóse na rede {1} y {2} más\"\nmsgstr[1] \"{0} desconeutóse na rede {1} y otres {2} más\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Editar comandu\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Amestar comandu\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Unvióse la solicitú de xunión\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Nun s'alcontró la cuenta\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Xunise a la rede\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Crear rede\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Xunise\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_rear\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Unvióse la solicitú de xunión\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Nun s'alcontró la rede\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Contraseña non válida\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"La rede ta enllena\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"La rede ta bloquiada\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Rede yá xunida\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"La ID de rede yá ta coyida\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Desconozse\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anónimu\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Conseña\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"_Guardar respaldu…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Restaurar dende respaldu…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"L'archivu nun contién los ficheros esperaos\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Coneutando\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Desconectáu\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Amosar Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Desconeutar\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"C_oneutar\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"¿De xuru que quies desagospiar al miembru «{0}» de la rede «{0}»?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Si se permite, los miembros desagospiaos puen xunise otra vegada cuando-yos \"\n\"pete.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Tu\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"¿De xuru que quies colar d'esta rede «{0}»?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Si se permite, pues xunite otra vegada cuando te pete.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"¿De xuru que quies desaniciar la rede «{0}»?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Si desanicies una rede, perderáse dafechu.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Tolos archivos sofitaos\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Guardar un respaldu\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Restaurar dende respaldu\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Restaurar\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Revertir\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Non disponible\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"pendiente\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} en llinia, {1} en total\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Ensin conexón\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"En llinia\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Retresmitíu\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nun pue algamase\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Esperando pola aprobación\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Fallu desconocíu\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Incompatibilidá de protocolu\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Direición en conflictu\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direutu\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Enol Puente https://launchpad.net/~enolp\\n\"\n\"Tornes Llume https://launchpad.net/~l-lumex03-tornes\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Reconeutando en {0} segundu\"\nmsgstr[1] \"Reconeutando en {0} segundos\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi nun ta instaláu\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"La version %s de Hamachi ta obsoleta\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/bg.po",
    "content": "# Bulgarian translation for haguichi\n# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2018-10-02 16:57+0000\\n\"\n\"Last-Translator: Dimitar Dimitrov <Unknown>\\n\"\n\"Language-Team: Bulgarian <bg@li.org>\\n\"\n\"Language: bg\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2018-10-03 18:00+0000\\n\"\n\"X-Generator: Launchpad (build 18785)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi Мрежов Мениджър\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Характеристики:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Търсим, подреждащ се и сгъваем списък с мрежи\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Страничен панел за лесен достъп до детайли и действия\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Бекъп и възстановяване на вашата Hamachi директория\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Показване на клиентската информация\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\n#, fuzzy\nmsgid \"Search your network list\"\nmsgstr \"Търсим, подреждащ се и сгъваем списък с мрежи\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Влез в мрежа\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Етикет\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Приоритет\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Запазване\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Закачи за Акаунт\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Акаунт\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Добави всички мрежи създадени от този клиент\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Закачи\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Промяна на Псевдоним\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Заключен\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Одобрение\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Автоматично\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Ръчно\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"П_ромени\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Промяна на Парола\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Нова парола\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Мрежа\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Парола\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Одобри\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Откажи\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Копирай IPv_4 Адреса\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Копирай IPv_6 Адреса\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Копирай Клиент\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Изгони\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Влез в мрежа…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Създай Мрежа…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Отиди на линия\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Отиди извън линия\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Напусни\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Изтриване\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Промяна на _Псевдоним…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Промяна на _Парола…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Копирай Мрежа\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Основни\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Конфигурация\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Запиши резервно копие\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Отвори папката\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Псевдоним\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Протокол\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 и IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"IPv4 само\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"IPv6 само\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Поведение\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Автоматично свързване при стартиране\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Свързвай се автоматично когато връзката е изгубена\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Автоматично изключване при излизане\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Команди\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Работен плот\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Изглед\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Показване на _индикатор\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Известия\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Показвай съобщение, когато връзката е и_згубена\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Показвай съобщение, когато потребител се _присъединява\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Показвай съобщение, когато потребител _напуска\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Показвай съобщение, когато потребител се появи на линия\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Показвай съобщение, когато потребител отиде извън линия\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Запиши резервно копие…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Възстанови от резервно копие…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Показване на помощ\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Показване на клиентската информация\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Предпочитания\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Клавишни комбинации\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Изход\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Свързване\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Свързване\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Изключи\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Списък с мрежи\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Влез в мрежа\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Създай мрежа\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Обновяване\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Търсене\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Показване/скриване на офлайн членовете\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Разширяване на всички мрежи\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Свиване на всички мрежи\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Изпълнение на команда\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Информация\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Закачи\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Отказване\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Клиент\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 адрес\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 адрес\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"Версията на Hamachi %s е устаряла\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Статус\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Създай Мрежа\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Създай Мрежа\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Собственик\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Потребители\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Капацитет\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Тунел\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Команди\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Адрес\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Преглед на работен плот\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"_Възстанови\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Добавяне на команда\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Преглед на споделени файлове\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Преглед на работен плот\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Пинг\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Избери като действие по подразбиране\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Редактиране…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Ду_блиране…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Премести на_горе\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Премести на_долу\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Избери като действие по подразбиране\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Премахване\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Зареждане\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\n#, fuzzy\nmsgid \"Search networks and members\"\nmsgstr \"Hamachi Мрежов Мениджър\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Влез в мрежа\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi изгуби връзка\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Отказване\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Вие се свързахте!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Използвайте бутона +, за да добавите мрежа\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Моля изтеглете Hamachi и следвайте инструкциите за инсталиране\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Изтегляне\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi не е конфигуриран\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Трябва да конфигурирате Hamachi за да се свържете\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"Н_астройки\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Информация\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Подреждане по _Име\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Подреждане по _Статус\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Покажи потребителите _извън линия\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Настройки\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Клавишни комбинации\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Помощ\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Относно Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Изход\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Повторно свързване\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Няма връзка с интернет\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Вписване\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Грешка при свързване\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Грешка при влизането\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Актуализиране\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Свързан\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Потребител се присъедини\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} се присъедини към мрежата {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} влезе в мрежата {1} и {2} друга мрежа\"\nmsgstr[1] \"{0} влезе в мрежата {1} и {2} други мрежи\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Потребител напусна\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} напусна мрежата {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} напусна мрежата {1} и {2} друга мрежа\"\nmsgstr[1] \"{0} напусна мрежата {1} и {2} други мрежи\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Потребителят е на линия\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} дойде на линия в мрежата {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} се появи на линия във мрежата {1} и {2} друга мрежа\"\nmsgstr[1] \"{0} се появи на линия във мрежата {1} и {2} други мрежи\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Потребителят е извън линия\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} отиде извън линия в мрежата {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} отиде извън линия във мрежата {1} и {2} друга мрежа\"\nmsgstr[1] \"{0} отиде извън линия във мрежата {1} и {2} други мрежи\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Редактиране на команда\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Добавяне на команда\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Запитването за присъединяване беше изпратено.\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Акаунтът не е намерен\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Влез в мрежа\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Създай Мрежа\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Влез\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"С_ъздай\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Запитването за присъединяване беше изпратено.\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Мрежата не е намерена\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Невалидна парола\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Мрежата е пълна\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Мрежата е заключена\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Мрежата е вече добавена\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Името на мрежата е заето\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Неизвестен\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Анонимен\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Парола\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"_Запиши резервно копие…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Възстанови от резервно копие…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Архивът не съдържа очакваните файлове\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Свързване\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Изключен\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Покажи Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Изключи\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Свързване\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\"Сигурни ли сте, че искате да изгоните потребител „{0}“ от мрежата „{1}“?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Ако решите, изгонените членове могат да се включат отново в мрежата по всяко \"\n\"време.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Вие\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Сигурни ли сте, че искате да напуснете мрежата „{0}“?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Ако решите, можете да се включите в мрежата по всяко време.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Сигурни ли сте, че искате да изтриете мрежата „{0}“?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Ако изтриете мрежа, тя ще бъде перманентно загубена.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Всички поддържани архиви\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Запиши резервно копие\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Възстанови от резервно копие\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Възстанови\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Връщане\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Недостъпен\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"предстоящ\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} на линия, {1} общо\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Извън линия\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"На линия\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Чрез ретранслатор\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Недостъпен\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Очаква одобрение\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Непозната грешка\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Несъответствие на протоколите\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Конфликтиращи адреси\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Директно\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Dimitar Dimitrov https://launchpad.net/~dimitrov\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Свързване след {0} секунда\"\nmsgstr[1] \"Свързване след {0} секунди\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi не е инсталиран\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Версията на Hamachi %s е устаряла\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/cs.po",
    "content": "# Czech translation for haguichi\n# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2018-03-31 00:09+0000\\n\"\n\"Last-Translator: Zdeněk Kopš <zdenekkops@gmail.com>\\n\"\n\"Language-Team: Czech <cs@li.org>\\n\"\n\"Language: cs\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\\n\"\n\"X-Launchpad-Export-Date: 2018-03-31 09:40+0000\\n\"\n\"X-Generator: Launchpad (build 18599)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Konfiguraci nelze obnovi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Zobrazit informace o klientovi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Připojit se k síti\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Popis\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 příkaz\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 příkaz\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorita\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Uložit\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Připojit k účtu\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Účet\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Zahrnout všechny sítě vytvořené tímto klientem\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Připojit\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Změnit přezdívku\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Uzamčeno\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Schválení\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaticky\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Ručně\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Změnit\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Změnit heslo\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nové heslo\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID sítě\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Heslo\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Schválit\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"O_dmítnout\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Kopírovat IPv_4 adresu\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Kopírovat IPv_6 adresu\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kopírovat ID klienta\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Vyhodit\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Vstoupit do sítě…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Vytvořit síť…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Jít online\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Jít offline\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Opustit\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Smazat\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Změ_nit přezdívku…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Změnit _heslo…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Kopírovat ID sítě\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Obecné\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfigurace\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Uložit Zálohu\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Otevřít složku\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Přezdívka\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokol\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Oba IPv4 a IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Pouze IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Pouze IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Chování\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Přip_ojit automaticky při spuštění\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Automaticky obnovit spojení, pokud bylo zt_raceno\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"O_dpojit při ukončení\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Příkazy\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Plocha\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Vzhled\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Zobrazit _indikátor\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Upozornění\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Z_obrazit upozornění pokud je spojení ztraceno\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Zobrazit upozornění pokud se člen připo_jí\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Zobrazit upozornění pokud se č_len odpojí\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Zobrazit upozornění, když člen změní stav na o_nline\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Zobrazit upozornění, když člen změní stav na o_ffline\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Uložit zálohu…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Obnovit ze zálohy…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Zobrazit nápovědu\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Zobrazit informace o klientovi\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Otevřít nabídku\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Nastavení\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Klávesové zkratky\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Ukončit\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Spojení\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Připojit\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Odpojit\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Seznam sítí\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Připojit se k síti\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Vytvořit síť\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Obnovit\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Hledat\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Zobrazit/skrýt offline členy\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Rozbalit všechny sítě\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Sbalit všechny sítě\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Vykonat příkaz\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informace\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Připojit\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Zrušit\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID klienta\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 adresa\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 adresa\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi verze %s je zastaralá\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Stav\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Vytvořit síť\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Vytvořit síť\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Vlastník\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Členové\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapacita\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Příkazy\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adresa\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Zobrazit vzdálenou plochu\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"O_bnovit\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Přidat příkaz\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"P_rocházet sdílené\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Zobrazit vzdálenou plochu\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Nastavit jako výchozí akci\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Upravit…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_plikovat…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Posunout _nahoru\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Posunout _dolů\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Nastavit jako výchozí akci\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Odstranit\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Vstoupit do sítě\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi spojení ztraceno\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Zrušit\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Jste připojen!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Použijte tlačítko + pro přidání sítě\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Stáhněte si Hamachi a postupujte dle instalačních instrukcí\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Stáhnout\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi není nastaveno\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Před připojením je třeba Hamachi nastavit\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Nastavit\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informace\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Řadit dle _jména\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Řadit dle _stavu\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Zobrazit členy _offline\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Nastavení\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Klávesové zkratky\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Nápověda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"O _aplikaci Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"U_končit\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Znovu připojit\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Žádné připojení k internetu\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Přihlašuje se\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Chyba při připojování\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Přihlášení Hamachi selhalo\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Aktualizuje se\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Připojen\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Člen přidán\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} přidán do sítě {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} se připojil do sítě {1} a {2} další sítě\"\nmsgstr[1] \"{0} se připojil do sítě {1} a {2} dalších sítí\"\nmsgstr[2] \"{0} se připojil do sítě {1} a {2} dalších sítí\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Člen odešel\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} opustil síť {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} opustil síť {1} a {2} další síť\"\nmsgstr[1] \"{0} opustil síť {1} a {2} další sítě\"\nmsgstr[2] \"{0} opustil síť {1} a {2} dalších sítí\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Člen online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} je online v síti {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} je online v síti {1} a {2} další síti\"\nmsgstr[1] \"{0} je online v síti {1} a {2} dalších sítí\"\nmsgstr[2] \"{0} je online v síti {1} a {2} dalších sítí\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Člen offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} je offline ze sítě {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} je offline v síti {1} a {2} další síti\"\nmsgstr[1] \"{0} je offline v síti {1} a {2} dalších sítí\"\nmsgstr[2] \"{0} je offline v síti {1} a {2} dalších sítí\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Upravit příkaz\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Přidat příkaz\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Žádost o připojení zaslána\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Účet nenalezen\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Vstoupit do sítě\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Vytvořit síť\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"Vstou_pit\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"V_ytvořit\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Žádost o připojení zaslána\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Síť nenalezena\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Neplatné heslo\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Síť je plná\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Síť je zamčená\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Síť je již připojena\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"ID sítě je již používáno\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Neznámý\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonymní\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Heslo\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"_Uložit zálohu…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Obnovit ze zálohy…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Archiv neobsahuje očekávané soubory\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Připojuje se\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Odpojen\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Zobrazit Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Odpojit\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Připojit\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Opravdu vyhodit člena „{0}“ ze sítě „{1}“?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"Pokud potvrdíte, mohou se vyloučení členi později opět připojit.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Vy\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Opravdu chcete opustit síť „{0}“?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Pokud potvrdíte, můžete se opět připojit kdykoliv později.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Opravdu chcete smazat síť „{0}“?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Pokud síť odstraníte, bude nenávratně ztracena.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Všechny podporované archivy\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Uložit Zálohu\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Obnovit ze zálohy\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"O_bnovit\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Vrátit\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Nedostupný\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"čekající\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} připojeno, {1} celkem\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Předáno\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nedostupný\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Čeká na schválení\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Neznámá chyba\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Chyba v protokolu\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Konflikt adres\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Přímý\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Jan Bažant https://launchpad.net/~brbla\\n\"\n\"Zdeněk Kopš https://launchpad.net/~zdenekkops\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Obnova připojení za {0} sekundu\"\nmsgstr[1] \"Obnova připojení za {0} sekundy\"\nmsgstr[2] \"Obnova připojení za {0} sekund\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi není nainstalováno\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi verze %s je zastaralá\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/de.po",
    "content": "# German translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2017-08-21 22:12+0000\\n\"\n\"Last-Translator: scrawl <Unknown>\\n\"\n\"Language-Team: German <de@li.org>\\n\"\n\"Language: de\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2017-08-22 17:12+0000\\n\"\n\"X-Generator: Launchpad (build 18446)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Konfiguration konnte nicht wiederhergestellt werden\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Netzwerk beitreten\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Bezeichnung\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4-Kommando\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6-Kommando\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorität\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Speichern\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Einem Konto zuweisen\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Konto\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Alle Netzwerke dieses Clients einbinden\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Zuweisen\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Benutzernamen ändern\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Gesperrt\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Zulassung\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatisch\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manuell\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"Ä_ndern\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Passwort ändern\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Neues Passwort\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Netzwerk-Kennung\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Passwort\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Annehmen\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"A_blehnen\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv_4-Adresse kopieren\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv_6-Adresse kopieren\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"Client-Kennung _kopieren\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Hinauswerfen\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"Netzwerk bei_treten…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"Netzwerk _erstellen…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Online gehen\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Offline gehen\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Verlassen\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Löschen\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"_Benutzernamen ändern…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"_Passwort ändern…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"Netzwerk-Kennung _kopieren\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Allgemein\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfiguration\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Backup erstellen\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Ordner öffnen\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Benutzername\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokoll\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 und IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Nur IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Nur IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Verhalten\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Beim Start automatisch verbinden\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Beim Verlust der Ve_rbindung automatisch neu verbinden\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Trennen beim Beenden\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Befehle\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Arbeitsumgebung\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Benach­rich­ti­gungen\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Benachrichtigung anzeigen, wenn die Verbindun_g unterbrochen wird\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Benachrichtigung anzeigen, wenn ein Mitglied das Netzwerk _betritt\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Benachrichtigung anzeigen, wenn ein Mitglied das Netzwerk _verlässt\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Benachrichtigung anzeigen, wenn ein Mitglied o_nline geht\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Benachrichtigung anzeigen, wenn ein Mitglied o_ffline geht\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Backup er_stellen…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Backup wiede_rherstellen…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Menü öffnen\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Einstellungen\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Beenden\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Verbindung\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Verbinden\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Trennen\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\n#, fuzzy\nmsgid \"Network List\"\nmsgstr \"Netzwerk ist voll\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\n#, fuzzy\nmsgid \"Join a network\"\nmsgstr \"Netzwerk beitreten\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\n#, fuzzy\nmsgid \"Create a network\"\nmsgstr \"Netzwerk erstellen\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Aktualisieren\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\n#, fuzzy\nmsgid \"Show/hide offline members\"\nmsgstr \"_Offline-Mitglieder\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\n#, fuzzy\nmsgid \"Execute command\"\nmsgstr \"Befehl bearbeiten\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informationen\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Zuweisen\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Abbrechen\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Client-Kennung\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4-Adresse\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6-Adresse\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi-Version %s ist veraltet\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Status\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Netzwerk erstellen\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Netzwerk erstellen\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Besitzer\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Mitglieder\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapazität\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Befehle\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adresse\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Entfernten Desktop betrachten\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"_Wiederherstellen\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"Befehl _hinzufügen\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Freigaben durchsuchen\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Entfernten Desktop betrachten\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Pingen\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Als Standard-Aktion festlegen\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Bearbeiten…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplizieren…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Nach _oben\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Nach _unten\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Als Standard-Aktion festlegen\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Entfernen\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Netzwerk beitreten\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi-Verbindung wurde unterbrochen\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Abbrechen\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Sie sind verbunden!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Verwenden Sie die + Button, um ein Netzwerk hinzuzufügen\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"\"\n\"Bitte laden Sie Hamachi herunter und folgen Sie der Installationsanleitung\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Herunterladen\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi ist nicht konfiguriert\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Bevor Sie sich verbinden können, muss Hamachi konfiguriert werden\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Konfigurieren\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informationen\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Nach _Namen sortieren\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Nach _Status sortieren\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Offline-Mitglieder\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Einstellungen\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Hilfe\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Info zu Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Beenden\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Wiederverbinden\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Keine Internetverbindung\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Anmelden\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Fehler beim Verbinden\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi-Login fehlgeschlagen\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Aktualisiere\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Verbunden\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Mitglied beigetreten\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} trat dem Netzwerk {1} bei\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} betritt das Netzwerk {1} und {2} anderes Netzwerk\"\nmsgstr[1] \"{0} betritt das Netzwerk {1} und {2} andere Netzwerke\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Mitglied verlässt Netzwerk\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} hat das Netzwerk {1} verlassen\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} verlässt das Netzwerk {1} und {2} anderes Netzwerk\"\nmsgstr[1] \"{0} verlässt das Netzwerk {1} und {2} andere Netzwerke\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Mitglied online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} geht online im Netzwerk {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} geht online im Netzwerk {1} und {2} anderen Netzwerk\"\nmsgstr[1] \"{0} geht online im Netzwerk {1} und {2} anderen Netzwerken\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Mitglied offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} geht offline im Netzwerk {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} geht offline im Netzwerk {1} und {2} anderen Netzwerk\"\nmsgstr[1] \"{0} geht offline im Netzwerk {1} und {2} anderen Netzwerken\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Befehl bearbeiten\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Befehl hinzufügen\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Beitrittsanfrage gesendet\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Konto wurde nicht gefunden\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Netzwerk beitreten\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Netzwerk erstellen\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"Bei_treten\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Erstellen\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Beitrittsanfrage gesendet\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Netzwerk nicht gefunden\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Ungültiges Passwort\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Netzwerk ist voll\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Netzwerk ist gesperrt\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Sie sind diesem Netzwerk bereits beigetreten\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Netzwerk-Kennung ist bereits vergeben\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Unbekannt\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonym\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Passwort\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"Backup er_stellen…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"Backup wiede_rherstellen…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Archiv enthält die erwarteten Dateien nicht\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Verbinde\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Getrennt\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"Haguichi _zeigen\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Trennen\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Verbinden\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\"Sind Sie sicher, dass Sie das Mitglied »{0}« aus dem Netzwerk »{1}« \"\n\"hinauswerfen möchten?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Falls erlaubt, können hinausgeworfene Mitglieder das Netzwerk zu jeder Zeit \"\n\"wieder betreten.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Sie\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Möchten Sie das Netzwerk »{0}« wirklich verlassen?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Sie können Sie das Netzwerk später wieder betreten, sofern erlaubt.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Möchten Sie das Netzwerk »{0}« wirklich löschen?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Wenn Sie ein Netzwerk löschen, wird es für immer verloren.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Alle unterstützten Archive\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Backup erstellen\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Backup wiederherstellen\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Wiederherstellen\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Zurücksetzen\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Nicht verfügbar\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"noch ausstehend\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} online, {1} insgesamt\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Weitergeleitet\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nicht erreichbar\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Warte auf Zulassung\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Unbekannter Fehler\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protokollfehler\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Adressenkonflikt\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direkt\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Befehl »%s« wurde entfernt\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Rückgängig\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Jannik Heller https://launchpad.net/~scrawl-deactivatedaccount\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Wiederverbindung in {0} Sekunde\"\nmsgstr[1] \"Wiederverbindung in {0} Sekunden\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi ist nicht installiert\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi-Version %s ist veraltet\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/es.po",
    "content": "# Spanish translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-07-01 04:25+0000\\n\"\n\"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\\n\"\n\"Language-Team: Spanish <es@li.org>\\n\"\n\"Language: es\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2024-07-06 14:08+0000\\n\"\n\"X-Generator: Launchpad (build bbfa2351d9d6a9ddfe262109428f7bf5516e65d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Gestor de redes de Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Gestione sus redes de Hamachi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"LogMeIn Hamachi;VPN;LAN;Red;Internet;P2P;Par;Cliente;GUI;Interfaz;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi facilita crear, administrar e incorporarse a redes de Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Prestaciones:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Organice, contraiga y filtre la lista de redes\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Barra lateral para un fácil acceso a los detalles y las acciones\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Admite un indicador para un acceso rápido a las acciones principales\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\"Notificaciones de escritorio para mantenerse al tanto de los sucesos de la \"\n\"red\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Órdenes totalmente personalizables\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"\"\n\"Copia de respaldo y restauración de la carpeta de configuración de Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Tenga en cuenta: Requiere una instalación de Hamachi en el sistema para \"\n\"poder usarlo.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Vea su lista de redes y la información de los clientes\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Vea detalles sobre el miembro seleccionado\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Vea detalles sobre la red seleccionada\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Busque en su lista de redes\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Únase a redes o cree nuevas\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etiqueta\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Orden IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Orden IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioridad\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Guardar\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Vincular a la cuenta\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Cuenta\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Incluir todas las redes creadas por este cliente\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Vincular\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Cambiar acceso\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Bloqueado\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"No aceptar miembros nuevos en la red\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Aprobado\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automáticamente\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manualmente\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"Ca_mbiar\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Cambiar contraseña\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Contraseña nueva\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Id. de red\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Contraseña\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Aprobar\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Rechazar\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copiar dirección IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copiar dirección IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copiar id. de cliente\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Expulsar\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Detalles\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Unirse a una red…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"C_rear red…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Conectarse\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Desconectarse\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Abandonar\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Eliminar\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Cambiar _acceso…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Ca_mbiar contraseña…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Copiar id. de red\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"General\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuración\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Copia de respaldo\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Abrir carpeta\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Apodo\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocolo\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 e IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Solo IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Solo IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportamiento\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"Intervalo de actualización de lista de _redes\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Conectar _automáticamente al arrancar\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Reconectar cuando se pierda la conexión\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Desconectar al salir\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Órdenes\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Escritorio\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Apariencia\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Estilo\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Seguir el sistema\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Claro\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Oscuro\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Mostrar el _indicador\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notificaciones\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Mostrar una notificación cuando se pierda la conexión\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Mostrar una notificación cuando un miembro se _una\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Mostrar notificación cuando un miembro _abandone\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Mostrar notificación cuando se _conecte un miembro\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Mostrar notificación cuando se _desconecte un miembro\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Guardar una copia de seguridad…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Restaurar desde la copia de seguridad…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Mostrar la ayuda\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Mostrar la información del cliente\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Abrir menú\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferencias\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Atajos del teclado\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Salir\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Conexión\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Conectar\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Desconectar\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Lista de redes\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Unirse a una red\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Crear una red\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Actualizar\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Buscar\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Mostrar u ocultar miembros desconectados\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Expandir todas las redes\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Contraer todas las redes\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Ejecutar orden\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Información\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Vincular\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Id. de cliente\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Dirección IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Dirección IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Versión de Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Estado\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Abandonar red\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Eliminar red\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Propietario\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Miembros\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacidad\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Túnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Variables de orden\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Dirección\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Emulador de terminal\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Gestor de archivos\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Visor de escritorios remotos\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Restaurar valores predeterminados\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Añadir una orden\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Examinar recursos compartidos\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Ver escritorio remoto\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Acción predeterminada\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Opciones\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Editar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplicar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Mover hacia a_rriba\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Mover hacia a_bajo\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Predeterminar acción\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Quitar\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inicializando\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Menú principal\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Buscar redes y miembros\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Añadir red\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi ha perdido la conexión\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Cancelar\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Conexión establecida.\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Usa el botón + para añadir una red\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"No se encontró ningún resultado\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Pruebe a buscar algo distinto\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Descargue Hamachi y siga las instrucciones de instalación\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Descargar\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi no está configurado\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Debe configurar Hamachi antes de que pueda realizar una conexión\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"C_onfigurar\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Información\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Ordenar por _nombre\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Ordenar por _estado\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Mostrar miembros no conectados\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferencias\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Atajos del _teclado\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"Ay_uda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Acerca de Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Salir\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Volver a conectar\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"No hay conexión a Internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Iniciando sesión\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Error al conectar\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Ha fallado el inicio de sesión de Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Actualizando\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Conectado\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Se ha unido un miembro\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} se ha unido a la red {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} se ha unido a la red {1} y a otra {2} red más\"\nmsgstr[1] \"{0} se ha unido a la red {1} y a otras {2} redes\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Se ha ido un miembro\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{o} han abandonado la red {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} ha dejado la red {1} y {2} red más\"\nmsgstr[1] \"{0} ha dejado la red {1} y otras {2} redes\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Miembros conectados\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} se ha conectado a la red {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} se ha conectado en la red {1} y en {2} red más\"\nmsgstr[1] \"{0} se ha conectado en la red {1} y en otras {2} redes\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Miembros desconectados\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} se ha desconectado de la red {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} se desconectó en la red {1} y en {2} red más\"\nmsgstr[1] \"{0} se desconectó en la red {1} y en otras {2} redes\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Editar la orden\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Añadir una orden\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Solicitud de vinculación enviada\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Cuenta no encontrada\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Unirse a la red\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Crear red\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Unirse\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_rear\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Solicitud de unión enviada\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Red no encontrada\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Contraseña incorrecta\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"La red está llena\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Red bloqueada\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Ya se ha unido a esta red\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"El identificador de red ya está en uso\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Desconocido\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anónima\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Contraseña cambiada\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Guardando copia de respaldo…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Copia de respaldo guardada\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"No se pudo guardar la copia de respaldo\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Restaurando la copia de respaldo…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Copia de respaldo restaurada\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"No se pudo restaurar la copia de respaldo\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"El archivador no contiene los archivos esperados\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Conectando\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Desconectado\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Mostrar Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Desconectar\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Conectar\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"¿Confirma que quiere expulsar al miembro «{0}» de la red «{1}»?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Si se admite, los miembros expulsados podrán unirse a la red en cualquier \"\n\"momento posterior.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Usted\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"¿Confirma que quiere abandonar la red «{0}»?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Si es admitido, podrá unirse a la red en cualquier momento posterior.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"¿Confirma que quiere eliminar la red «{0}»?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Si elimina una red se perderá permanentemente.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"No presente\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Todos los archivadores compatibles\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Guardar una copia de seguridad\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Restaurar desde la copia de seguridad\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Restaurar\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Nunca\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S segundo\"\nmsgstr[1] \"%S segundos\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minuto\"\nmsgstr[1] \"%S minutos\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"No disponible\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"pendiente\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"No vinculado\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} conectados, {1} total\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Fuera de línea\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"En línea\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Retransmitida\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Inalcanzable\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Esperando aprobación\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Error desconocido\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Incoherencia de protocolo\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Dirección en conflicto\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Directa\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"¿Quiere restaurar las órdenes predeterminadas?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Se perderán todas las personalizaciones.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Comando eliminado «%s»\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Deshacer\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Configurando\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Adolfo Jayme Barrientos https://launchpad.net/~fitojb\\n\"\n\"Eduardo Parra https://launchpad.net/~soker\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Se copió en el portapapeles\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Reconexión en {0} segundo\"\nmsgstr[1] \"Reconexión en {0} segundos\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi no está instalado\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"La versión %s de Hamachi está obsoleta\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi se seguirá ejecutando al cerrar su ventana de tal manera que pueda \"\n\"monitorizar la conexión y enviarle notificaciones.\"\n"
  },
  {
    "path": "po/fi.po",
    "content": "# Finnish translation for haguichi\n# Copyright (c) 2024 Rosetta Contributors and Canonical Ltd 2024\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-10-08 17:37+0000\\n\"\n\"Last-Translator: Jiri Grönroos <Unknown>\\n\"\n\"Language-Team: Finnish <fi@li.org>\\n\"\n\"Language: fi\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2024-10-10 18:28+0000\\n\"\n\"X-Generator: Launchpad (build 6341c735b243a0768c3cb66edf85737937cab327)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi-verkkohallinta\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Hallitse Hamachi-verkkojasi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Ominaisuudet:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Liity verkkoon tai luo omia verkkoja\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4-komento\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6-komento\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioriteetti\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Tallenna\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Liitä tiliin\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Tili\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Liitä\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Lukittu\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Älä hyväksy uusia verkkojäseniä\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Hyväksyntä\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaattisesti\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manuaalisesti\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Vaihda salasana\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Uusi salasana\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Verkon tunniste\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Salasana\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Hyväksy\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"H_ylkää\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Kopioi IPv_4-osoite\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Kopioi IPv_6-osoite\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kopioi asiakkaan tunniste\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"H_äädä\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Tiedot\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Liity verkkoon…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Luo verkko…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Muodosta yhteys\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"P_oistu\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Poista\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Vaihda _salasana…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Kopioi verkon tunniste\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Yleiset\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Määritys\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Varmuuskopio\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Avaa kansio\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Nimimerkki\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Yhteyskäytäntö\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 ja IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Vain IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Vain IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Toiminta\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Verkkoluettelon päivitysväli\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Yhdistä automaattisesti käynnistäessä\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Y_hdistä automaattisesti uudelleen kun yhteys on katkennut\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Katkaise yhteys lopettaessa\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Komennot\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Työpöytä\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Ulkoasu\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Tyyli\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Seuraa järjestelmää\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Vaalea\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Tumma\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Näytä _ilmaisin\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Ilmoitukset\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Näytä ilmoitus kun yhteys _katkeaa\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Näytä ilmoitus kun jäsen _liittyy\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Näytä ilmoitus kun jäsen _poistuu\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Näytä ilmoitus kun jäsen saapuu l_injoille\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Näytä ilmoitus kun jäsen poi_stuu linjoilta\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Tallenna varmuuskopio…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Palauta varmuuskopiosta…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Näytä ohje\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Avaa valikko\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Asetukset\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Pikanäppäimet\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Lopeta\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Yhteys\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Yhdistä\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Katkaise yhteys\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Verkkoluettelo\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Liity verkkoon\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Luo verkko\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Päivitä\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Etsi\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Laajenna kaikki verkot\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Supista kaikki verkot\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Suorita komento\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Tietoja\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Liitä\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Peru\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Asiakkaan tunniste\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4-osoite\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6-osoite\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi-versio\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Tila\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Poistu verkosta\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Poista verkko\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Omistaja\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Jäsenet\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapasiteetti\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunneli\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Komennon muuttujat\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Osoite\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Pääte-emulaattori\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Tiedostonhallinta\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Etätyöpöydän käyttö\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Palauta oletus\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Lisää komento\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Selaa jakoja\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Näytä etätyöpöytä\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Oletustoiminto\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Valinnat\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Muokkaa…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"M_onista…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Siirrä _ylös\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Siirrä _alas\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"A_seta oletustoiminnoksi\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Poista\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopioi\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Alustetaan\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Päävalikko\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Etsi verkkoja ja jäseniä\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Lisää verkko\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi-yhteys katkennut\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Peru\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Yhteys muodostettu!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Käytä + painiketta lisätäksesi verkon\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Tuloksia ei löytynyt\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Yritä eri hakuehdoilla\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Lataa Hamachi ja seuraa asennusohjeita\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Lataa\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachia ei ole määritetty\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Sinun tulee määrittää Hamachi, ennen kuin voit yhdistää\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Määritä\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Tietoja\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Järjestä _nimen mukaan\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Järjestä _tilan mukaan\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Asetukset\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Pikanäppäimet\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Ohje\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Tietoja - Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Lopeta\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Yhdistä uudelleen\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Ei internetyhteyttä\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Kirjaudutaan sisään\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Virhe yhdistäessä\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi-kirjautuminen epäonnistui\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Päivitetään\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Yhdistetty\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Jäsen liittyi\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} liittyi verkkoon {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Jäsen poistui\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} poistui verkosta {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Muokkaa komentoa\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Lisää komento\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Liitospyyntö lähetetty\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Tiliä ei löytynyt\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Liity verkkoon\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Luo verkko\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"Liit_y\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Luo\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Liittymispyyntö lähetetty\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Verkkoa ei löytynyt\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Virheellinen salasana\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Verkko on täynnä\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Verkko on lukittu\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Liitytty jo verkkoon\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Verkon tunniste on jo käytössä\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Tuntematon\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonyymi\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Salasana vaihdettu\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Tallennetaan varmuuskopio…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Varmuuskopio tallennettu\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Varmuuskopion tallentaminen epäonnistui\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Palautetaan varmuuskopiosta…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Varmuuskopio palautettu\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Varmuuskopion palauttaminen epäonnistui\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Arkisto ei sisällä odotettuja tiedostoja\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Yhdistetään\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Yhteys katkaistu\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Näytä Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Katkaise yhteys\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Yhdistä\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Sinä\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Haluatko varmasti poistua verkosta “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Haluatko varmasti poistaa verkon “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Jos poistat verkon, se katoaa pysyvästi.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Ei läsnä\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Kaikki tuetut arkistot\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Tallenna varmuuskopio\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Palauta varmuuskopiosta\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Palauta\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Ei koskaan\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S sekunti\"\nmsgstr[1] \"%S sekuntia\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minuutti\"\nmsgstr[1] \"%S minuuttia\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Ei liitetty\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} yhteydessä, {1} yhteensä\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Ei yhteydessä\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Yhteydessä\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Odotetaan hyväksyntää\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Tuntematon virhe\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Yhteyskäytäntö ei täsmää\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Suora\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Komento “%s” poistettu\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Kumoa\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Määritetään asetuksia\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Jiri Grönroos https://launchpad.net/~jiri-gronroos\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Kopioitu leikepöydälle\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Yhdistetään uudelleen {0} sekunnin kuluttua\"\nmsgstr[1] \"Yhdistetään uudelleen {0} sekunnin kuluttua\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi ei ole asennettu\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi-versio %s on vanhentunut\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/fr.po",
    "content": "# French translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2022-08-28 16:08+0000\\n\"\n\"Last-Translator: Stephen Brandt <stephen@stephenbrandt.com>\\n\"\n\"Language-Team: French <fr@li.org>\\n\"\n\"Language: fr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Launchpad-Export-Date: 2022-08-28 16:12+0000\\n\"\n\"X-Generator: Launchpad (build 813bec7783fe35df624c0e68cd38fcaa442fb8d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Gestionnaire de réseaux Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Fonctionnalités :\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"liste de réseau consultable et triable ;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"barre latérale pour un accès facile aux détails et aux actions ;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"sauvegarde et restauration de votre dossier de configuration Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Afficher les informations du client\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\n#, fuzzy\nmsgid \"Search your network list\"\nmsgstr \"liste de réseau consultable et triable ;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Joindre un réseau\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Étiquette\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Commande IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Commande IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorité\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Enregistrer\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Attacher au compte\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Compte\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Inclure tous les réseaux créés par ce client\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Attacher\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Changer de pseudo\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Verrouillé\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Approbation\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatiquement\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manuellement\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"C_hanger\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Changer de mot de passe\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nouveau mot de passe\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Identifiant du réseau\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Mot de passe\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Approuver\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Rejeter\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copier l'adresse IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copier l'adresse IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copier l'identifiant client\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Expulser\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Joindre un réseau…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"C_réer un réseau…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Se c_onnecter\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Se _déconnecter\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Quitter\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Supprimer\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Changer de _pseudo…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Changer de _mot de passe…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Copier l'identifiant réseau\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Général\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuration\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Enregistrer une sauvegarde\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Ouvrir un dossier\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Pseudo\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocole\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 et IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"IPv4 seul\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"IPv6 seul\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportement\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Se c_onnecter automatiquement au lancement\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Se _reconnecter automatiquement lorsque la connexion a été perdue\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"Se _déconnecter en quittant\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Commandes\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Espace de travail\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Apparence\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Afficher l'_indicateur\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notifications\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Afficher une notification lorsque la connexion est perdue\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Afficher une notification lorsqu'un membre se _joint au réseau\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Afficher une notification lorsqu'un membre _part du réseau\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Afficher une notification lorsqu'un membre se _connecte\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Afficher une notification lorsqu'un membre n'est pl_us en ligne\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Enregistrer une _sauvegarde…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Restaurer depuis une sauvegarde…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Afficher l’aide\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Afficher les informations du client\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Ouvrir le menu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Préférences\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Raccourcis clavier\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Quitter\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Connexion\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Se connecter\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Déconnecter\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Liste du réseau\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Joindre un réseau\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Créer un réseau\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Actualiser\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Rechercher\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Afficher/masquer les membres hors ligne\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Développer tous les réseaux\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Réduire tous les réseaux\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Exécuter la commande\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Information\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Attacher\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Annuler\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Identifiant client\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Adresse IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Adresse IPv6\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"La version %s de Hamachi est obsolète\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"État\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Créer un réseau\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Créer un réseau\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Propriétaire\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Membres\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacité\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Commandes\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adresse\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Voir le bureau à distance\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"_Restaurer\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"A_jouter une commande\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"P_arcourir les partages\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Voir le bureau à distance\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Définir comme action par défaut\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Modifier…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_pliquer…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Déplacer vers le _haut\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Déplacer vers le _bas\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Définir comme action par défaut\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Supprimer\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Initialisation\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\n#, fuzzy\nmsgid \"Search networks and members\"\nmsgstr \"Gestionnaire de réseaux Hamachi\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Joindre le réseau\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi a perdu la connexion\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"A_nnuler\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Vous êtes connecté !\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Utilisez le bouton + pour ajouter un réseau\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"\"\n\"Merci de télécharger Hamachi et de suivre les instructions d'installation\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Télécharger\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi n'est pas configuré\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Vous devez configurer Hamachi avant de pouvoir vous connecter\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"C_onfigurer\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Information\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Trier par _nom\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Trier par é_tat\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Membres hors ligne\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Préférences\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Raccourcis _clavier\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"Aid_e\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"À _propos de Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Quitter\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Reconnecter\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Pas de connexion Internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Identification en cours\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Erreur de connexion\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Echec de l'ouverture de la session Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Mise à jour\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Connecté\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Membre a rejoint\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} a joint le réseau {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} a rejoint le réseau {1} et {2} autre réseau\"\nmsgstr[1] \"{0} a rejoint le réseau {1} et {2} autres réseaux\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Membre parti\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} a quitté le réseau {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} a quitté le réseau {1} et {2} autre réseau\"\nmsgstr[1] \"{0} a quitté le réseau {1} et {2} autres réseaux\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Membre en ligne\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} est maintenant en ligne sur le réseau {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} s'est connecté au réseau {1} et {2} autre réseau\"\nmsgstr[1] \"{0} s'est connecté au réseau {1} et {2} autres réseaux\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Membre hors ligne\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} est maintenant hors ligne sur le réseau {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} s'est déconnecté du réseau {1} et d'{2} autre réseau\"\nmsgstr[1] \"{0} s'est déconnecté du réseau {1} et de {2} autres réseaux\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Modifier une commande\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Ajouter une commande\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Demande de connexion envoyée\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Compte introuvable\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Joindre le réseau\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Créer un réseau\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Joindre\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_réer\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Demande de connexion envoyée\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Réseau non trouvé\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Mot de passe invalide\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Le réseau est saturé\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Le réseau est verrouillé\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Vous avez déjà rejoint ce réseau\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Le identifiant du réseau est déjà utilisé\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Inconnu\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonyme\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Mot de passe\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"Enregistrer une _sauvegarde…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Restaurer depuis une sauvegarde…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"L'archive ne contient pas les fichiers attendus\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Connexion en cours\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Déconnecté\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Afficher Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Déconnecter\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"Se _connecter\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\"Êtes-vous sûr de vouloir expulser le membre « {0} » du réseau « {1} » ?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Si admis, les membres expulsés peuvent rejoindre le réseau à tout moment \"\n\"ultérieur.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Vous\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Êtes-vous sûr de vouloir quitter le réseau « {0} » ?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Si admis, vous pourrez rejoindre le réseau à tout moment ultérieur.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Êtes-vous sûr de vouloir effacer le réseau « {0} » ?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Si vous supprimez un réseau, il sera définitivement perdu.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Toutes les archives prises en charge\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Enregistrer une sauvegarde\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Restaurer depuis une sauvegarde\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Restaurer\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Rétablir\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Indisponible\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"en attente\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} en ligne, {1} au total\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Hors ligne\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"En ligne\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Relayé\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Inaccessible\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"En attente d'approbation\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Erreur inconnue\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protocole inadéquat\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Conflit d'adresse\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direct\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Commande « %s » supprimée\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Annuler\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Configuration\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Emilien Klein https://launchpad.net/~emilien-klein\\n\"\n\"Gabriel U. https://launchpad.net/~gabriel-ull\\n\"\n\"Jean-Marc https://launchpad.net/~m-balthazar\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Reconnexion dans {0} seconde\"\nmsgstr[1] \"Reconnexion dans {0} secondes\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi n'est pas installé\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"La version %s de Hamachi est obsolète\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/haguichi.pot",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\n#, fuzzy\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n\"Language: \\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/hu.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2026-05-01 10:09+0000\\n\"\n\"Last-Translator: therealmate <hellogaming91@gmail.com>\\n\"\n\"Language-Team: Hungarian <https://hosted.weblate.org/projects/haguichi/\"\n\"haguichi/hu/>\\n\"\n\"Language: hu\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.17.1\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi hálózatkezelő\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Hamachi-hálózatok kezelése\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\"LogMeIn Hamachi;VPN;LAN;Hálózat;Internet;P2P;Partner;Kliens;Grafikus felület;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"A Haguichi leegyszerűsíti a Hamachi-hálózatokhoz való csatlakozást, \"\n\"létrehozást és kezelést.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funkciók:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Kereshető, rendezhető és összecsukható hálózatlista\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Oldalsáv a részletekhez és műveletekhez való gyors hozzáféréshez\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Indikátortámogatás az elsődleges műveletek gyors eléréséhez\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Asztali értesítések a hálózati események nyomon követéséhez\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Teljesen testreszabható parancsok\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"A Hamachi beállítási mappa biztonsági mentése és visszaállítása\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"<em>Figyelem: A használathoz a Hamachi telepítése szükséges.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Hálózatlista és kliensinformációk megtekintése\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Kijelölt tag adatainak megtekintése\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Kijelölt hálózat adatainak megtekintése\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Keresés a hálózatlistában\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Csatlakozzon egy hálózathoz vagy készítsen egyet\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Címke\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4-parancs\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6-parancs\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioritás\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Mentés\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Fiókhoz csatolás\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Fiók\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Az ezzel a klienssel létrehozott összes hálózat megjelenítése\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Csatolás\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Hozzáférés módosítása\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Zárolva\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Ne fogadjon új hálózati tagokat\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Jóváhagyás\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatikusan\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manuálisan\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Módosítás\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Jelszó módosítása\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Új jelszó\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Hálózatazonosító\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Jelszó\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Jóváhagyás\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Elutasítás\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv_4 cím másolása\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv_6 cím másolása\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kliens azonosító másolása\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Eltávolítás\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Részletek\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Csatlakozás hálózathoz…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Hálózat létrehozása…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Online mód\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Offline mód\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Kilépés\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Törlés\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"_Hozzáférés módosítása…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"_Jelszó módosítása…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"Hálózati _azonosító másolása\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Általános\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfigurálás\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Biztonsági mentés\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Mappa megnyitása\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Becenév\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokoll\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 és IPv6 is\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Csak IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Csak IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Viselkedés\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Hálózatlista frissítési gyakorisága\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Automatikus _csatlakozás indításkor\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Automatikus új_racsatlakozás kapcsolat megszakadásakor\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Kapcsolat bontása kilépéskor\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Parancsok\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Asztal\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Megjelenés\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Stílus\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Rendszertéma követése\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Világos\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Sötét\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"_Indikátor megjelenítése\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Értesítések\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Értesítés megjelenítése, ha a kapcsolat megsz_akad\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Értesítés megjelenítése, ha egy tag _csatlakozik\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Értesítés megjelenítése, ha egy tag _kilép\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Értesítés megjelenítése, ha egy tag o_nline állapotba kerül\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Értesítés megjelenítése, ha egy tag o_ffline állapotba kerül\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Biztonsági mentés…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Visszaállítás biztonsági mentésből…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Súgó megjelenítése\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Kliensinformációk megjelenítése\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Menü megnyitása\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Beállítások\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Gyorsbillentyűk\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Kilépés\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Kapcsolat\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Csatlakozás\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Kapcsolat bontása\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Hálózatlista\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Csatlakozás egy hálózathoz\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Hálózat létrehozása\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Frissítés\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Keresés\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Offline tagok megjelenítése/elrejtése\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Összes hálózat kibontása\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Összes hálózat összecsukása\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Parancs végrehajtása\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Információ\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Csatolás\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Mégse\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Kliens azonosító\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4-cím\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6-cím\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi-verzió\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Állapot\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Hálózat elhagyása\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Hálózat törlése\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Tulajdonos\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Tagok\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapacitás\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Alagút\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Parancsváltozók\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Cím\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Terminálemulátor\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Fájlkezelő\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Távoli asztal néző\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Alapértelmezés visszaállítása\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Parancs hozzáadása\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Megosztások böngészése\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Távoli asztal megtekintése\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Pingelés\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Alapértelmezett művelet\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Beállítások\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Szerkesztés…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Kettőzés…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Mozgatás _fel\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Mozgatás _le\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Beállítás alapértelmezett műveletként\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Eltávolítás\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Másolás\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inicializálás\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Főmenü\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Hálózatok és tagok keresése\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Hálózat hozzáadása\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Megszakadt a kapcsolat a Hamachival\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Mégse\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Csatlakozva!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Használja a + gombot hálózat hozzáadásához\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Nincs találat\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Próbáljon meg más keresést\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Töltse le a Hamachit, és kövesse a telepítési utasításokat\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Letöltés\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"A Hamachi nincs konfigurálva\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"A csatlakozás előtt konfigurálnia kell a Hamachit\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Konfigurálás\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Információ\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Rendezés _név szerint\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Rendezés álla_pot szerint\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Offline tagok megjelenítése\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Beállítások\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Gyorsbillentyűk\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Súgó\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"A _Haguichi névjegye\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Kilépés\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Újracsatlakozás\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Nincs internetkapcsolat\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Bejelentkezés\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Csatlakozási hiba\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi bejelentkezés sikertelen\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Frissítés folyamatban\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Csatlakozva\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Új tag csatlakozott\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} csatlakozott a(z) {1} hálózathoz\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} csatlakozott a(z) {1} hálózathoz és még {2} másik hálózathoz\"\nmsgstr[1] \"{0} csatlakozott a(z) {1} hálózathoz és még {2} másik hálózathoz\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Tag kilépett\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} kilépett a(z) {1} hálózatból\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} kilépett a(z) {1} hálózatból és még {2} másik hálózatból\"\nmsgstr[1] \"{0} kilépett a(z) {1} hálózatból és még {2} másik hálózatból\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Tag online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} online lett a(z) {1} hálózatban\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} online lett a(z) {1} hálózatban és még {2} másik hálózatban\"\nmsgstr[1] \"{0} online lett a(z) {1} hálózatban és még {2} másik hálózatban\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Tag offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} offline lett a(z) {1} hálózatban\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} offline lett a(z) {1} hálózatban és még {2} másik hálózatban\"\nmsgstr[1] \"{0} offline lett a(z) {1} hálózatban és még {2} másik hálózatban\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Parancs szerkesztése\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Parancs hozzáadása\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Csatolási kérelem elküldve\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Fiók nem található\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Csatlakozás a hálózathoz\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Hálózat létrehozása\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Csatlakozás\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Létrehozás\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Csatlakozási kérelem elküldve\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"A hálózat nem található\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Érvénytelen jelszó\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"A hálózat megtelt\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"A hálózat zárolva van\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Már csatlakozott ehhez a hálózathoz\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"A hálózat azonosítója már foglalt\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Ismeretlen\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Névtelen\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Jelszó megváltoztatva\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Biztonsági mentés mentése…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Biztonsági mentés elmentve\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Nem sikerült elmenteni a biztonsági mentést\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Biztonsági mentés visszaállítása…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Biztonsági mentés visszaállítva\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Nem sikerült visszaállítani a biztonsági mentést\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Az archívum nem tartalmazza a szükséges fájlokat\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Csatlakozás\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Kapcsolat bontva\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Haguichi megjelenítése\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Kapcsolat bontása\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"K_apcsolódás\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\"Biztosan el szeretné távolítani a következő tagot a(z) „{1}” hálózatból: \"\n\"„{0}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Ha visszaveszik őket, az eltávolított tagok később újra csatlakozhatnak a \"\n\"hálózathoz.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Ön\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Biztosan el szeretne hagyni a(z) „{0}” hálózatot?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Ha visszaveszik, később bármikor újra csatlakozhat a hálózathoz.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Biztosan törölni szeretné a(z) „{0}” hálózatot?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Ha törli a hálózatot, az véglegesen el fog veszni.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Nincs jelen\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Minden támogatott archívum\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Biztonsági mentés mentése\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Visszaállítás biztonsági mentésből\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Visszaállítás\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Soha\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S másodperc\"\nmsgstr[1] \"%S másodperc\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S perc\"\nmsgstr[1] \"%S perc\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Nem elérhető\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"függőben\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Nem csatolt\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} online, {1} összesen\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Továbbított\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Elérhetetlen\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Jóváhagyásra vár\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Ismeretlen hiba\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protokoll-eltérés\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Ütköző cím\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Közvetlen\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Visszaállítja az alapértelmezett parancsokat?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Minden testreszabás el fog veszni.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"A(z) „%s” parancs eltávolítva\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Visszavonás\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Konfigurálás folyamatban\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"therealmate https://github.com/therealmate\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Másolva a vágólapra\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Újrakapcsolódás {0} másodperc múlva\"\nmsgstr[1] \"Újrakapcsolódás {0} másodperc múlva\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"A Hamachi nincs telepítve\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"A Hamachi %s verziója elavult\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"A Haguichi az ablak bezárása után is futni fog, hogy figyelhesse a \"\n\"kapcsolatot és értesítéseket küldhessen.\"\n"
  },
  {
    "path": "po/id.po",
    "content": "# Indonesian translation for haguichi\n# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-07-27 14:48+0000\\n\"\n\"Last-Translator: Abdul Munif Hanafi <amunifhanafi@gmail.com>\\n\"\n\"Language-Team: Indonesian <id@li.org>\\n\"\n\"Language: id\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Launchpad-Export-Date: 2024-08-03 10:52+0000\\n\"\n\"X-Generator: Launchpad (build e3ace39cea497a5ecb83e8fb6dd8e7e169f02939)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Manajer Jaringan Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Kelola jaringan Hamachi Anda\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Fitur:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Senarai Jaringan yang dapat ditelusuri, diurutkan dan diciutkan\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Bilah samping untuk memudahkan akses ke detail dan tindakan\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Perintah yang dapat dikustomisasi sepenuhnya\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Cadangkan dan pulihkan folder konfigurasi Hamachi Anda\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Harap diperhatikan: Membutuhkan pemasangan Hamachi pada sistem agar \"\n\"dapat digunakan.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Lihat daftar jaringan dan informasi klien Anda\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Lihat rincian anggota yang dipilih\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Lihat rincian jaringan yang dipilih\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Cari daftar jaringan Anda\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Bergabung atau buat jaringan\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Label\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Perintah IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Perintah IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioritas\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Simpan\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Lampirkan ke Akun\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Akun\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Sertakan seluruh jaringan yang dibuat oleh klien\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"L_ampirkan\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Ubah Akses\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Terkunci\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Jangan terima anggota jaringan baru\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Persetujuan\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Secara otomatis\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Secara Manual\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"Uba_h\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Ubah Sandi\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Sandi baru\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID Jaringan\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Kata Sandi\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Setujui\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Tolak\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Salin Alamat IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Salin Alamat IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Salin ID Klien\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Keluarkan\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Rincian\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Bergabung ke dalam Jaringan…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Buat Jaringan…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Masuk Jaringan\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Keluar Jaringan\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Pergi\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Hapus\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Ubah _Akses…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Ubah _Sandi…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Salin ID Jaringan\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Umum\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfigurasi\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Buka Folder\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Nama Panggilan\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokol\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 dan IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Hanya IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Hanya IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Perilaku\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"T_erhubung secara otomatis pada saat startup\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Hubungkan kembali secara otomatis ketika koneksi terputus\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Diskonek ketika keluar\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Perintah\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Desktop\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Tampilan\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Gaya\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Ikuti Sistem\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Terang\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Gelap\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Tampilkan _Indikator\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notifikasi\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Tampilkan notifikasi koneksi ter_putus\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Tampilkan notifikasi ketika anggota _bergabung\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Tampilkan notifikasi ketika anggota _keluar\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Tampilkan notifikasi ketika anggota masuk ke _daring\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Tampilkan notifikasi ketika anggota keluar dari _luring\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Simpan data cadangan…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Pulihkan dari data cadangan…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Tampilkan bantuan\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Tampilkan informasi klien\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Buka menu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferensi\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Pintasan papan tik\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Keluar\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Koneksi\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Sambung\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Putus koneksi\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Senarai Jaringan\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Bergabung dalam jaringan\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Membuat Jaringan\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Segarkan\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Telusuri\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Tampilkan/sembunyikan anggota yang terputus\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Tampilkan semua jaringan\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Sembunyikan semua jaringan\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Jalankan perintah\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informasi\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Lampirkan\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Batal\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID Klien\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Alamat IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Alamat IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Versi Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Status\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Keluar dari Jaringan\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Hapus Jaringan\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Pemilik\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Anggota\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapasitas\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Variabel Perintah\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Alamat\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Emulator Terminal\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Pengelola Berkas\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Tambah Perintah\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Menelusuri Shares\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Lihat Remote Destop\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Pilihan\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Sunting…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplikat…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Pindah ke _atas\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Pindah ke _bawah\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Set sebagai tindakan default\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Hapus\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Salin\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Menginisialisasi\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Menu Utama\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Cari jaringan dan anggota\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Tambah Jaringan\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Koneksi Hamachi putus\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Batal\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Anda terhubung!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Gunakan tombol + untuk menambahkan jaringan\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Tak Ada Hasil yang Ditemukan\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Coba pencarian lain\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Silahkan unduh Hamachi dan ikuti intruksi instalasi\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Unduh\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi belum di konfigurasi\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Anda harus mengkonfigurasi Hamachi sebelum anda dapat terhubung\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"K_onfigurasi\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informasi\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Urutkan berdasar _Nama\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Urutkan berdasar _Status\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Tampilkan Anggota _Luring\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferensi\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Pintasan Papan Ti_k\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Bantuan\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"Tent_ang Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Keluar\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Sambungkan ulang\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Tidak ada koneksi internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Masuk ke sistem\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Galat menyambung\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Login Hamachi gagal\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Memperbarui\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Terhubung\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Anggota bergabung\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} bergabung ke jaringan {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} bergabung ke dalam jaringan {1} dan {2} jaringan lain\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Anggota keluar\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} meninggalkan jaringan {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} meninggalkan jaringan {1} dan {2} jaringan lain\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Anggota daring\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} menjadi daring di jaringan {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} menjadi daring di jaringan {1} dan {2} jaringan lain\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Anggota luring\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} pergi luring dari jaringan {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} pergi ke luring dari jaringan {1} dan {2} jaringan lain\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Sunting Perintah\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Tambah Perintah\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Akun tidak ditemukan\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Bergabung ke dalam jaringan\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Buat Jaringan\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Gabung\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"B_uat\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Permintaan bergabung terkirim\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Jaringan tidak ditemukan\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Sandi tidak tepat\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Jaringan sedang penuh\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Jaringan terkunci\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Sudah bergabung dalam jaringan\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"ID jaringan telah digunakan\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Tidak Dikenal\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonim\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Kata sandi diubah\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Arsip tidak berisi file yang sesuai\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Menghubungkan\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Koneksi terputus\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Tampilkan Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Putus koneksi\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"S_ambung\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"\"\n\"Apakah anda yakin ingin mengeluarkan anggota “{0}”? dari jaringan “{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Jika diijinkan, anggota yang dikeluarkan dapat bergabung kembali ke jaringan \"\n\"ini.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Anda\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Apakah anda yakin untuk meninggalkan jaringan “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Jika diijinkan, anda dapat bergabung kembali ke jaringan ini.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Apakah anda yakin untuk menghapus jaringan “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Jika anda menghapus jaringan, maka akan hilang secara permanen.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Tidak ada\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Semua arsip yang didukung\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Simpan data cadangan\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Pulihkan dari data cadangan\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Pulihkan\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Jangan Pernah\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S detik\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S menit\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Tidak Tersedia\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"tertunda\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Tidak dilampirkan\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} daring, {1} total\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Luring\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Daring\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Tidak langsung\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Tidak terjangkau\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Menunggu Persetujuan\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Galat tidak dikenal\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protokol tidak sesuai\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Alamat bertentangan\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Langsung\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Mengkonfigurasi\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Abdul Munif Hanafi https://launchpad.net/~hahnavi\\n\"\n\"Fattah Rizki https://launchpad.net/~galamarv\\n\"\n\"Hertatijanto Hartono https://launchpad.net/~dvertx\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Disalin ke papan klip\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Mencoba koneksi ulang dalam {0} detik\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi belum dipasang\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi versi %s sudah kedaluwarsa\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi akan terus berjalan ketika jendelanya ditutup sehingga dapat \"\n\"memantau koneksi dan mengirimkan notifikasi.\"\n"
  },
  {
    "path": "po/it.po",
    "content": "# Italian translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2022-08-28 15:57+0000\\n\"\n\"Last-Translator: Stephen Brandt <stephen@stephenbrandt.com>\\n\"\n\"Language-Team: Italian <it@li.org>\\n\"\n\"Language: it\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2022-08-28 16:00+0000\\n\"\n\"X-Generator: Launchpad (build 813bec7783fe35df624c0e68cd38fcaa442fb8d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi Network Manager\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funzionalità:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Cerca, ordina e compatta la lista delle reti\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Barra laterale per l'accesso a dettagli e azioni\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Salva e ripristina la tua cartella della configurazione di Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Mostra informazioni del client\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\n#, fuzzy\nmsgid \"Search your network list\"\nmsgstr \"Cerca, ordina e compatta la lista delle reti\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Unisciti ad una rete\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etichetta\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Comando IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Comando IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorità\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Salva\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Associa all'account\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Account\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Includi tutte le reti create da questo client\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Associa\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Modifica nickname\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Bloccato\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Approvato\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaticamente\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manualmente\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"M_odifica\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Modifica password\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nuova password\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID Rete\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Password\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Approva\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Rifiuta\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copia l'indirizzo IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copia l'indirizzo IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copia ID Client\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Espelli\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Entra in una rete…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Crea una rete…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Vai in linea\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Vai non in linea\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Lascia\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"Eli_mina\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Modifica _nickname…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Modifica _password…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Copia ID Rete\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Generale\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configurazione\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Esegui un backup\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Apri cartella\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Nickname\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocollo\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Sia IPv4 che IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Solo IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Solo IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportamento\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Connetti automaticamente all'avvio\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Riconnetti automaticamente quando viene persa la connessione\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Disconnetti all'uscita\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Comandi\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Desktop\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Aspetto\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Mostra _indicator\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notifiche\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Mostra una notifica quando viene persa la connessione\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Mostra una notifica quando un membro _entra nella rete\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Mostra una notifica quando un membro e_sce dalla rete\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Mostra una notifica quando un membro si c_onnette\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Mostra una notifica quando un membro si _disconnette\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Es_egui un backup…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Ripristina da un backup…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Mostra aiuto\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Mostra informazioni del client\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Apre il menù\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferenze\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Scorciatoie da tastiera\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Esci\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Connessione\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Connetti\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Disconnetti\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Lista della rete\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Unisciti ad una rete\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Crea una rete\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Aggiorna\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Cerca\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Mostra/nascondi membri offline\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Espandi tutte le reti\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Contrai tutte le reti\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Esegui comando\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informazioni\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Associa\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Annulla\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID Client\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Indirizzo IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Indirizzo IPv6\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"La versione %s di Hamachi è obsoleta.\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Stato\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Crea una rete\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Crea una rete\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Proprietario\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Membri\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacità\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Comandi\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Indirizzo\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Visualizzare il desktop remoto\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"_Ripristina\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"A_ggiungi comando\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Esplora le risorse condivise\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Visualizzare il desktop remoto\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Imposta come azione di default\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Modifica…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplica…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Sposta in _alto\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Sposta in _basso\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Imposta come azione di default\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Rimuovi\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inizializzazione\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\n#, fuzzy\nmsgid \"Search networks and members\"\nmsgstr \"Hamachi Network Manager\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Entra in una rete\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi ha perso la connessione\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"A_nnulla\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Sei connesso!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Usa il pulsante + per aggiungere una rete\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Per favore, scarica Hamachi e segui le istruzioni di installazione\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Scarica\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi non è configurato\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Devi configurare Hamachi prima di poterti connettere\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"C_onfigura\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"I_nformazioni\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Ordina per _nome\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Ordina per _stato\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Membri non in linea\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"Preferen_ze\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Scorciatoie da _tastiera\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"A_iuto\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"I_nformazioni su Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Esci\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Riconnetti\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Connessione ad internet non presente\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Login in corso\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Errore di connessione\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi ha fallito il login\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Aggiornamento\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Connesso\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Membro entrato\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} è entrato nella rete {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} è entrato nella rete {1} e in {2} altra rete\"\nmsgstr[1] \"{0} è entrato nella rete {1} e in {2} altre reti\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Membro uscito\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} ha lasciato la rete {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} ha lasciato la rete {1} e {2} altra rete\"\nmsgstr[1] \"{0} ha lasciato la rete {1} e {2} altre reti\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Membro in linea\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} si è connesso alla rete {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} è diventato online nella rete {1} e in {2} altra rete\"\nmsgstr[1] \"{0} è diventato online nella rete {1} e in {2} altre reti\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Membro non in linea\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} si è disconnesso dalla rete {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} è diventato offline nella rete {1} e in {2} altra rete\"\nmsgstr[1] \"{0} è diventato offline nella rete {1} e in {2} altre reti\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Modifica comando\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Aggiungi comando\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Inviata richiesta per entrare nella rete\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Account non trovato\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Entra in una rete\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Crea una rete\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Entra\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_rea\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Inviata richiesta per entrare nella rete\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Rete non trovata\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Password non valida\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"La rete è piena\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"La rete è bloccata\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Sei già entrato nella rete\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"L'ID di rete è già stato utilizzato\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Sconosciuto\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonimo\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Password\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"Es_egui un backup…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Ripristina da un backup…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"L'archivio non contiene i file attesi\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Connessione in corso\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Disconnesso\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Mostra Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Disconnetti\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"C_onnetti\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Sei sicuro di volere espellere il membro «{0}» dalla rete «{1}»?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Se ammessi, i membri cacciati possono rientrare nella rete in qualsiasi \"\n\"momento.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Tu\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Sei sicuro di volere lasciare la rete «{0}»?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Se accettato, puoi rientrare nella rete in qualunque momento.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Sei sicuro di volere cancellare la rete «{0}»?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Se cancelli una rete, sarà persa definitivamente.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Tutti gli archivi supportati\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Esegui un backup\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Ripristina da un backup\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Ripristina\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"_Ripristina\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Non disponibile\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"in sospeso\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} in linea, {1} totali\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Non in linea\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"In linea\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Indiretta\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Irraggiungibile\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"In attesa di approvazione\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Errore sconosciuto\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Mancata corrispondenza del protocollo\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Indirizzo in conflitto\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Diretta\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Comando «%s» rimosso\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Annulla\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Configurazione\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Enrico Grassi https://launchpad.net/~enricog\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Riconnessione in {0} secondo\"\nmsgstr[1] \"Riconnessione in {0} secondi\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi non è installato\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"La versione %s di Hamachi è obsoleta.\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/ja.po",
    "content": "# Japanese translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2026-04-20 18:02+0000\\n\"\n\"Last-Translator: Ryo Nakano <ryonakaknock3@gmail.com>\\n\"\n\"Language-Team: Japanese <https://hosted.weblate.org/projects/haguichi/\"\n\"haguichi/ja/>\\n\"\n\"Language: ja\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=1; plural=0;\\n\"\n\"X-Generator: Weblate 5.17.1-dev\\n\"\n\"X-Launchpad-Export-Date: 2024-07-16 23:04+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi ネットワークマネージャー\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Hamachi ネットワークを管理します\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;ネット\"\n\"ワーク;インターネット;ピア;クライアント;フロントエンド;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi を使うことで、Hamachi ネットワークへの参加・作成・管理が簡単になりま\"\n\"す。\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"機能:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"検索・並べ替え・折りたたみ可能なネットワークリスト\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"詳細やアクションに簡単にアクセスできるサイドバー\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"主要なアクションに素早くアクセスできるインジケーター\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"最新のネットワークイベントを確認できるデスクトップ通知\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"完全にカスタマイズ可能なコマンド\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Hamachi 設定フォルダーのバックアップと復元\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>ご注意ください: このアプリを使用するには、システムに Hamachi をインストー\"\n\"ルする必要があります。</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"ネットワークリストとクライアントの情報を表示する\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"選択したメンバーの詳細を表示する\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"選択したネットワークの詳細を表示する\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"ネットワークリストを検索する\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"ネットワークに参加・作成する\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"ラベル\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 コマンド\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 コマンド\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"優先度\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"保存(_S)\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"アカウントと関連付ける\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"アカウント\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"このクライアントで作ったすべてのネットワークを含む\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"関連付ける(_A)\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"アクセス権限を変更\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"ロック\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"ネットワークメンバーの新規参加を拒否します\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"承認\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"自動\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"手動\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"変更(_H)\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"パスワードを変更\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"新しいパスワード\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ネットワーク ID\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"パスワード\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"承認(_A)\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"拒否(_R)\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv4 アドレスをコピー(_4)\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv6 アドレスをコピー(_6)\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"クライアント ID をコピー(_C)\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"登録抹消(_E)\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"詳細(_D)\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"ネットワークに参加(_J)…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"ネットワークを作成(_C)…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"オンラインにする(_G)\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"オフラインにする(_G)\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"離脱する(_L)\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"削除(_D)\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"アクセス権限を変更(_A)…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"パスワードを変更(_P)…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"ネットワーク ID をコピー(_C)\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"全般\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"設定\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"バックアップ\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"フォルダーを開く\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"ニックネーム\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"プロトコル(_P)\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 と IPv6 の両方\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"IPv4 のみ\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"IPv6 のみ\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"動作\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"ネットワークリストの更新間隔(_N)\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"起動時に自動で接続(_O)\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"接続が切れたら自動で再接続する(_R)\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"終了時に接続を切る(_D)\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"コマンド\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"デスクトップ\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"外観\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"スタイル(_S)\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"システムに従う\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"ライト\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"ダーク\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"インジケーターを表示する(_I)\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"通知\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"接続が切れたら通知を表示する(_O)\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"メンバーが参加したら通知を表示する(_J)\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"メンバーが離脱したら通知を表示する(_L)\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"メンバーがオンラインになったら通知を表示する(_N)\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"メンバーがオフラインになったら通知を表示する(_F)\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"バックアップを保存(_S)…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"バックアップから復元(_R)…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"ヘルプを表示する\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"クライアントの情報を表示する\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"メニューを開く\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"設定\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"キーボードショートカットを表示する\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"終了する\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"接続状態\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"接続\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"切断\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"ネットワークリスト\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"ネットワークに参加する\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"ネットワークを作成する\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"更新\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"検索\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"オフラインメンバーの表示を切り替える\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"すべてのネットワークを展開する\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"すべてのネットワークを閉じる\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"コマンドを実行する\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"情報\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"関連付ける\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"キャンセル\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"クライアント ID\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 アドレス\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 アドレス\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi バージョン\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"状態\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"ネットワークを離脱\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"ネットワークを削除\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"所有者\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"メンバー\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"最大同時接続数\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"トンネル\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"コマンド変数\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"アドレス\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"端末エミュレーター\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"ファイルマネージャー\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"リモートデスクトップビューアー\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"デフォルトに復元(_R)\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"コマンドを追加(_A)\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"共有を見る(_B)\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"リモートデスクトップを開く(_V)\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"Ping(_P)\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"デフォルトのアクション\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"オプション\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"編集(_E)…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"複製(_P)…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"上へ(_U)\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"下へ(_D)\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"デフォルトのアクションとして設定(_S)\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"削除(_R)\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"コピー\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"初期化しています\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"メインメニュー\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"ネットワークとメンバーを検索\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"ネットワークを追加\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi の接続が切れました\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"キャンセル(_C)\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"接続されました!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"+ ボタンを使用してネットワークを追加してください\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"見つかりませんでした\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"他のキーワードを試してください\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Hamachi をダウンロードして手順に従いインストールしてください\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"ダウンロード(_D)\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi が未設定です\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"接続する前に Hamachi を設定する必要があります\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"設定(_O)\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"情報(_I)\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"名前順で並び替え(_N)\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"状態で並び替え(_S)\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"オフラインのメンバーを表示(_O)\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"設定(_P)\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"キーボードショートカット(_K)\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"ヘルプ(_H)\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"Haguichi について(_A)\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"終了(_Q)\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"再接続\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"インターネット接続がありません\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"ログインしています\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"接続エラー\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi のログインに失敗しました\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"更新しています\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"接続済み\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"メンバーが参加しました\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"ネットワーク {1} に {0} が参加しました\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"ネットワーク {1} とその他 {2} のネットワークに {0} が参加しました\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"メンバーが離脱しました\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"ネットワーク {1} から {0} が離脱しました\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"ネットワーク {1} とその他 {2} のネットワークから {0} が離脱しました\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"メンバーがオンラインになりました\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"ネットワーク {1} で {0} がオンラインになりました\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\n\"ネットワーク {1} とその他 {2} のネットワークで {0} がオンラインになりました\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"メンバーがオフラインになりました\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"ネットワーク {1} で {0} がオフラインになりました\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\n\"ネットワーク {1} とその他 {2} のネットワークで {0} がオフラインになりました\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"コマンドを編集\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"コマンドを追加\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"関連付けリクエストを送信しました\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"アカウントが見つかりませんでした\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"ネットワークに参加\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"ネットワークを作成\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"参加(_J)\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"作成(_R)\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"参加リクエストを送信しました\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"ネットワークが見つかりません\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"パスワードが正しくありません\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"ネットワークが混雑しています\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"ネットワークがロックされています\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"すでにネットワークに参加しています\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Network ID はすでに存在します\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"不明\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"匿名\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"パスワードを変更しました\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"バックアップを保存しています…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"バックアップを保存しました\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"バックアップの保存に失敗しました\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"バックアップから復元しています…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"バックアップから復元しました\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"バックアップからの復元に失敗しました\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"期待したファイルがアーカイブ内に見当たりません\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"接続しています\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"未接続\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"Haguichi を表示(_S)\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"切断(_D)\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"接続(_O)\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"ネットワーク “{1}” からメンバー “{0}” を登録抹消してもよろしいですか?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"承認されれば、そのメンバーは後でいつでもネットワークに再参加できます。\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"あなた\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"ネットワーク “{0}” から離脱してもよろしいですか?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"承認されれば、後でいつでもネットワークに再参加できます。\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"ネットワーク “{0}” を削除してもよろしいですか?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"ネットワークを削除すると、そのネットワークは元に戻せなくなります。\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"存在しない\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"すべてのサポートされたアーカイブ\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"バックアップを保存\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"バックアップから復元\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"復元(_R)\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"しない\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S 秒\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S 分\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"利用不可\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"保留中\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"関連付けなし\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"オンライン {0}、合計 {1}\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"オフライン\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"オンライン\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"リレー接続\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"接続できません\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"承認待ち\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"不明なエラーです\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"プロトコルが一致しません\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"アドレスが重複しています\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"直接接続\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"デフォルトのコマンドを復元しますか?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"すべての個人設定が破棄されます。\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"コマンド “%s” を削除しました\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"元に戻す(_U)\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"設定しています\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Ryo Nakano https://launchpad.net/~ryonakaknock3\\n\"\n\"Satoru Matsumoto https://launchpad.net/~helios-reds\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"クリップボードにコピーしました\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"{0} 秒以内に再接続します\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi がインストールされていません\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi バージョン %s はサポート対象外です\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"接続を監視し通知を送信できるよう、Haguichi はウィンドウを閉じても常駐します。\"\n"
  },
  {
    "path": "po/kk.po",
    "content": "# Kazakh translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2017-07-30 17:21+0000\\n\"\n\"Last-Translator: jmb_kz <Unknown>\\n\"\n\"Language-Team: Kazakh <kk@li.org>\\n\"\n\"Language: kk\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2017-07-31 18:12+0000\\n\"\n\"X-Generator: Launchpad (build 18441)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Баптауламаны қайта орнына қайтару мүмкін емес\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Желіге кіру\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Көрсетілетін жазу\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Басымдылық\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Сақтау\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Пайдаланушы атына бекіту\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Пайдаланушы аты (логин)\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Осы клиентпен құрылған барлық желілерді қарастыру\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Бекіту\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Ник өзгерту\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Жабық\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Мақұлдау\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Автоматты түрде\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Қалауыңызша (вручную)\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Өзгерту\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Құпия сөзді өзгерту\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Жаңа құпия сөз\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Желінің ID-і\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Құпия сөз\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Мақұлдау\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Қабылдамау\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv_4 адресін көшіру\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv_6 адресін көшіру\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"Клиент ID-ін _көшіру\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Шығарып тастау\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"Желіге _кіру…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"Желі _құру…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Желіге _қосылу\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Желіден _ажырату\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Шығу\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"Ө_шіру\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"_Ник өзгерту…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"_Құпия сөзді өзгерту…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"Желі ID-ін _көшіру\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Негізгі\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Баптаулама\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Резервті көшірмені сақтау\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Буманы ашу\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Ник\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Протокол\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 мен IPv6 бірге\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"тек IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"тек IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Қасиеттері\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Бағдарлама ашылатын кезде автоматты түрде _қосылу\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Қосылыс үзілгенде автоматты түрде _қайта қосылу\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"Бағдарлама жабу кезінде желіден _ажыратылу\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Командалар\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Жұмыс ортасы\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Мәлімдемелер\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Қосылыс үзілгені жайлы мәлімдеу\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Мүше желіге _кірген кезде (join) мәлімдеу\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Мүше желіден _шығып кететін кезде (leave) мәлімдеу\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Мүше желіге _қосылған кезде (online) мәлімдеу\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Мүше желіден _ажыратылатын кезде (offline) мәлімдеу\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Резервті көшірмені _сақтау…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Резерті көшірмеден қайта _орнына қайтару…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Мәзірді ашу\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Баптаулар\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Пернетақта жарлықтары\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Шығу\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Қосылыс\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Байланысты орнату\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Байланысты үзу\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\n#, fuzzy\nmsgid \"Network List\"\nmsgstr \"Желі толып тұр\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\n#, fuzzy\nmsgid \"Join a network\"\nmsgstr \"Желіге кіру\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\n#, fuzzy\nmsgid \"Create a network\"\nmsgstr \"Желі құру\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Жаңарту\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\n#, fuzzy\nmsgid \"Show/hide offline members\"\nmsgstr \"Желіге _қосылмаған мүшелерді көрсету\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\n#, fuzzy\nmsgid \"Execute command\"\nmsgstr \"Команданы өзгерту\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Мәлімет\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Бекіту\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Бас тарту\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Клиент ID-і\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 адрес\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 адрес\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi %s нұсқасы ескірген\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Күйі\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Желі құру\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Желі құру\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Иесі\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Мүшелері\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Сыйымдылық\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Тоннель\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Командалар\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Адрес\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Қашықтаған жұмыс үстелді _қарау\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"Қайта орнына қай_тару\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"Команданы қ_осу\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"Жарияланған бумаларды _қарап шығу\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"Қашықтаған жұмыс үстелді _қарау\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Пинг\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Қалыпты әрекет ретінде орнату\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Түзету…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Көшіру…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"_Жоғары жылжыту\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Тө_мен жылжыту\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Қалыпты әрекет ретінде орнату\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Өшіру\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Желіге кіру\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi қосылысы үзілді\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"Ба_с тарту\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Қосылыс сәтті орнатылды!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Желі қосу үшін + түймесін пайдаланыңыз\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Hamachi жүктек алып, оның орнату нұсқауына еріңіз\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Жүктеп алу\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi қалыпқа келтірілмеген\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Қосылу үшін сіз Hamachi қалыпқа келтіруіңіз қажет\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"Қалыпқа _келтіру\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Мәлімет\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"_Аты бойынша реттеу\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"_Күйі бойынша реттеу\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Желіге _қосылмаған мүшелерді көрсету\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Баптаулар\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"П_ернетақта жарлықтары\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Көмек\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"Haguichi тур_алы\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Шығу\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Қайта қосылу\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Интернетпен қосылыс жоқ\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Кіру\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Қосылу қатесі\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi кіру қатесі\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Жаңарту\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Қосылған\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Мүше желіге кірді\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} {1} желісіне кірді\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} {1} және {2} басқа желіге кірді\"\nmsgstr[1] \"{0} {1} және {2} басқа желілеріне кірді\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Мүше желіден шығып кетті\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} {1} желісінен шығып кетті\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} {1} және {2} басқа желіден шығып кетті\"\nmsgstr[1] \"{0} {1} және {2} басқа желілерінен шығып кетті\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Мүше желіге қосылды\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} {1} желісіне қосылды\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} {1} және {2} басқа желіге қосылды\"\nmsgstr[1] \"{0} {1} және {2} басқа желілеріне қосылды\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Мүше желіден ажыратылды\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} {1} желісінен ажыратылды\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} {1} және {2} басқа желіден ажыратылды\"\nmsgstr[1] \"{0} {1} және {2} басқа желілерінен ажыратылды\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Команданы өзгерту\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Команданы қосу\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Кіру сұранысы жіберілді\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Пайдаланушы аты табылмады\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Желіге кіру\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Желі құру\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Кіру\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Құру\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Кіру сұранысы жіберілді\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Желі табылмады\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Құпия сөз дұрыс емес\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Желі толып тұр\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Желі жабық\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Осы желіге қосылыс бар болып тұр\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Бұл желі ID бос емес\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Белгісіз\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Анонимды\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Құпия сөз\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"Резервті көшірмені _сақтау…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"Резерті көшірмеден қайта _орнына қайтару…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Архивте қажетті мәлімет жоқ\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Қосылуда\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Ажыратылған\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"Haguichi _көрсету\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"Б_айланысты үзу\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"Ба_йланысты орнату\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"”{1}” желісінен “{0}” мүшені шығарып тастауға сенімдісіз бе?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"Шығарылған мүшелер осы желіге кейінірек қайта кіре алады.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Сіз\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"”{0}” желіден шығуға сенімдісіз бе?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Осы желіге кейінірек қайта кіре аласыз.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"”{0}” желісін жоюға сенімдісіз бе?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Егер де сіз желіні жоятын болсаңыз, ол мәңгілікке жоғалтылады.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Қолдауы бар архивтер\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Резервті көшірмені сақтау\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Резерті көшірмеден қайта орнына қайтару\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"Қайта орнына қай_тару\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"Қай_тару\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Жетімсіз\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"күтілуде\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} желіге қосылған, барлығы {1}\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Желіге қосылмаған\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Желіге қосылған\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Ретранслятор арқылы\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Қол жетімсіз\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Мақұлдауды күту\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Белгісіз қате\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Протокол сәйкес емес\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Жанжал (конфликтующие) бар адрестер\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Тікелей\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"jmb_kz https://launchpad.net/~jmb-kz\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Желіге {0} секунтдан кейін қайта қосылу\"\nmsgstr[1] \"Желіге {0} секунтдан кейін қайта қосылу\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi орнатылмаған\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi %s нұсқасы ескірген\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/lt.po",
    "content": "# Lithuanian translation for haguichi\n# Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-07-05 22:37+0000\\n\"\n\"Last-Translator: Moo <hazap@hotmail.com>\\n\"\n\"Language-Team: Lithuanian <lt@li.org>\\n\"\n\"Language: lt\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"(n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\"X-Launchpad-Export-Date: 2024-07-06 14:00+0000\\n\"\n\"X-Generator: Launchpad (build bbfa2351d9d6a9ddfe262109428f7bf5516e65d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi tinklo tvarkytuvė\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Tvarkyti Hamachi tinklus\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\"LogMeIn Hamachi;VPN;LAN;Tinklas;Internetas;P2P;Lygiarangis;Klientas;Kliento \"\n\"programa;Grafinė naudotojo sąsaja;Vartotojo sąsaja;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi palengvina Hamachi tinklų kūrimą, administravimą bei prisijungimą \"\n\"prie jų.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Ypatybės:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Randamas, rikiuojamas ir suskleidžiamas tinklų sąrašas\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"\"\n\"Šoninė juosta, skirta lengvai prieigai prie išsamesnės informacijos ir \"\n\"veiksmų\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\"Indikatoriaus palaikymas, skirtas greitai prieigai prie pirminių veiksmų\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Darbalaukio pranešimai, kad neatitrūktumėte nuo tinklo įvykių\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Visiškai tinkinamos komandos\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Hamachi konfigūracijos aplanko atsarginės kopijos darymas ir atkūrimas\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Turėkite omenyje: Tam, kad galima būtų naudotis, yra reikalaujama, kad \"\n\"sistemoje būtų įdiegta Hamachi.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Žiūrėkite tinklų sąrašą bei kliento informaciją\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Žiūrėkite išsamesnę informaciją apie pasirinktą narį\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Žiūrėkite išsamesnę informaciją apie pasirinktą tinklą\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Atlikite paiešką tinklų sąraše\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Kurkite ar prisijunkite prie tinklų\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etiketė\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv_4 komanda\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv_6 komanda\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Pirmenybė\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"Į_rašyti\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Pridėti prie paskyros\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Paskyra\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Įtraukti visus šio kliento sukurtus tinklus\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Pridėti\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Keisti prieigą\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Užrakintas\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Nepriimti naujų tinklo narių\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Patvirtinimas\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatiškai\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Rankiniu būdu\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Keisti\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Keisti slaptažodį\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Naujas slaptažodis\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Tinklo ID\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Slaptažodis\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"P_atvirtinti\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Atmesti\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Kopijuoti IPv_4 adresą\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Kopijuoti IPv_6 adresą\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kopijuoti kliento ID\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"Išk_eldinti\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Išsamiau\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"Prisi_jungti prie tinklo…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"Su_kurti tinklą…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Prisijun_gti\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Atsijun_gti\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Išeiti\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Ištrinti\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Keisti _prieigą…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Keisti sla_ptažodį…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Kopijuoti tinklo ID\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Bendra\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfigūracija\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Atsarginė kopija\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Atverti aplanką\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Slapyvardis\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokolas\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Abu IPv4 ir IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Tik IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Tik IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Elgsena\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"Ti_nklų sąrašo atnaujinimo intervalas\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Aut_omatiškai jungtis paleisties metu\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Dingus r_yšiui, automatiškai jungtis iš naujo\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"Išeinant, a_tsijungti\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Komandos\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Darbalaukis\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Išvaizda\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Stilius\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Sekti sistemos\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Šviesus\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Tamsus\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Rodyti _indikatorių\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Pranešimai\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Rodyti pranešimą, kai di_ngsta ryšys\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Rodyti pranešimą, kai narys prisijungia prie tinklo\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Rodyti pranešimą, kai narys _išeina\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Rodyti pranešimą, kai narys prisijungia\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Rodyti pranešimą, kai narys atsijungia\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Įrašyti at_sarginę kopiją…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Atku_rti iš atsarginės kopijos…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Rodyti žinyną\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Rodyti kliento informaciją\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Atverti meniu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Nuostatos\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Klaviatūros trumpiniai\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Išeiti\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Ryšys\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Prisijungti\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Atsijungti\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Tinklų sąrašas\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Prisijungti prie tinklo\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Sukurti tinklą\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Įkelti iš naujo\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Ieškoti\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Rodyti/slėpti atsijungusius narius\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Išskleisti visus tinklus\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Suskleisti visus tinklus\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Vykdyti komandą\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informacija\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Pridėti\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Atsisakyti\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Kliento ID\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 adresas\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 adresas\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi versija\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Būsena\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Išeiti iš tinklo\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Ištrinti tinklą\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Savininkas\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Nariai\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Talpa\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunelis\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Komandų kintamieji\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adresas\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Terminalo emuliatorius\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Failų tvarkytuvė\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Nuotolinio darbalaukio žiūryklė\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Atkurti numatytąją\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Pridėti komandą\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"Naršyti _bendrinamus aplankus\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Rodyti nuotolinį darbalaukį\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"Ryšio _patikrinimas\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Numatytasis veiksmas\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Parametrai\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Redaguoti…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Kopijuoti…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"_Perkelti aukštyn\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"_Nuleisti žemyn\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"Nustatyti kaip numatytąjį _veiksmą\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"Š_alinti\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopijuoti\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inicijuojama\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Pagrindinis meniu\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Ieškoti tinklų ir narių\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Pridėti tinklą\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi ryšys nutrūko\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Atsisakyti\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Jūs esate prisijungę!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Naudokite + mygtuką, kad pridėtumėte tinklą\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Nerasta rezultatų\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Bandykite kitokią paiešką\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Prašome atsisiųsti Hamachi ir sekti įdiegimo nurodymus\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Atsisiųsti\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi nėra sukonfigūruota\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Prieš galėdami prisijungti, turite sukonfigūruoti Hamachi\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"K_onfigūruoti\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informacija\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Rikiuoti pagal _vardą\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Rikiuoti pagal bū_seną\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"R_odyti atsijungusius narius\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Nuostatos\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Klaviatūros trumpiniai\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"Ž_inynas\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Apie Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Išeiti\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Prisijungti iš naujo\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Nėra interneto ryšio\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Prisijungiama\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Klaida, jungiantis\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi prisijungimas nepavyko\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Atnaujinama\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Prisijungta\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Narys prisijungė prie tinklo\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} prisijungė prie tinklo {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} prisijungė prie tinklo {1} ir prie {2} kito tinklo\"\nmsgstr[1] \"{0} prisijungė prie tinklo {1} ir prie {2} kitų tinklų\"\nmsgstr[2] \"{0} prisijungė prie tinklo {1} ir prie {2} kitų tinklų\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Narys išėjo\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} išėjo iš tinklo {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} išėjo iš tinklo {1} ir iš {2} kito tinklo\"\nmsgstr[1] \"{0} išejo iš tinklo {1} ir iš {2} kitų tinklų\"\nmsgstr[2] \"{0} išėjo iš tinklo {1} ir iš {2} kitų tinklų\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Narys prisijungė\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} prisijungė tinkle {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} prisijungė tinkle {1} ir {2} kitame tinkle\"\nmsgstr[1] \"{0} prisijungė tinkle {1} ir {2} kituose tinkluose\"\nmsgstr[2] \"{0} prisijungė tinkle {1} ir {2} kitų tinklų\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Narys atsijungė\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} atsijungė tinkle {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} atsijungė tinkle {1} ir {2} kitame tinkle\"\nmsgstr[1] \"{0} atsijungė tinkle {1} ir {2} kituose tinkluose\"\nmsgstr[2] \"{0} atsijungė tinkle {1} ir {2} kitų tinklų\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Redaguoti komandą\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Pridėti komandą\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Pridėjimo užklausa išsiųsta\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Paskyra nerasta\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Prisijungti prie tinklo\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Sukurti tinklą\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"Prisijungti\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"Suku_rti\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Prisijungimo prašymas išsiųstas\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Tinklas nerastas\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Neteisingas slaptažodis\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Tinklas pilnas\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Tinklas užrakintas\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Prie tinklo jau prisijungta\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Tinklo ID jau užimtas\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Nežinoma\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anoniminis\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Slaptažodis pakeistas\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Įrašoma atsarginė kopija…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Atsarginė kopija įrašyta\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Nepavyko įrašyti atsarginės kopijos\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Atkuriama atsarginė kopija…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Atsarginė kopija atkurta\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Nepavyko atkurti atsarginės kopijos\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Archyve nėra reikiamų failų\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Jungiamasi\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Neprisijungta\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Rodyti Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"Atsij_ungti\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"Prisi_jungti\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Ar tikrai norite iškeldinti narį „{0}“ iš tinklo „{1}“?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Jei pritarsite, iškeldinti nariai vėliau, bet kuriuo metu gali iš naujo \"\n\"prisijungti prie tinklo.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Jūs\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Ar tikrai norite išeiti iš tinklo „{0}“?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Jei pritarsite, vėliau, bet kada galėsite iš naujo prisijungti prie tinklo.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Ar tikrai norite ištrinti tinklą „{0}“?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Jeigu ištrinsite tinklą, jis bus negrįžtamai prarastas.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Nėra\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Visi palaikomi archyvai\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Įrašyti atsarginę kopiją\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Atkurti iš atsarginės kopijos\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"Atku_rti\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Niekada\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S sekundė\"\nmsgstr[1] \"%S sekundės\"\nmsgstr[2] \"%S sekundžių\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minutė\"\nmsgstr[1] \"%S minutės\"\nmsgstr[2] \"%S minučių\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Neprieinamas\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"laukiama\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Nepridėta\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"prisijungusių {0}, viso {1}\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Atsijungęs\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Pasiekiamas\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Retransliuojamas\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nepasiekiamas\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Laukiama patvirtinimo\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Nežinoma klaida\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protokolo neatitikimas\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Konfliktuojantis adresas\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Tiesioginis\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Atkurti numatytąsias komandas?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Visi tinkinimai bus prarasti.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Konfigūruojama\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Moo https://launchpad.net/~mooo\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Nukopijuota į iškarpinę\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Jungiamasi iš naujo po {0} sekundės\"\nmsgstr[1] \"Jungiamasi iš naujo po {0} sekundžių\"\nmsgstr[2] \"Jungiamasi iš naujo po {0} sekundžių\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi nėra įdiegta\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi versija %s yra pasenusi\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi tęs darbą, kai jos langas yra užvertas, kad galėtų stebėti ryšį ir \"\n\"siųsti pranešimus.\"\n"
  },
  {
    "path": "po/meson.build",
    "content": "i18n.gettext(gettext_pkg, preset: 'glib')\n"
  },
  {
    "path": "po/nl.po",
    "content": "# Dutch translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-06-16 12:53+0000\\n\"\n\"Last-Translator: Stephen Brandt <stephen@stephenbrandt.com>\\n\"\n\"Language-Team: Dutch <nl@li.org>\\n\"\n\"Language: nl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Launchpad-Export-Date: 2024-06-16 13:00+0000\\n\"\n\"X-Generator: Launchpad (build bbfa2351d9d6a9ddfe262109428f7bf5516e65d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi netwerkbeheerder\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Beheer uw Hamachi-netwerken\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"LogMeIn Hamachi;VPN;LAN;Netwerk;Internet;P2P;Peer;Client;GUI;Frontend;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi maakt het een fluitje van een cent om aan Hamachi-netwerken deel te \"\n\"nemen, of zelf aan te maken en te beheren.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Eigenschappen:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Doorzoekbare, sorteerbare en inklapbare netwerklijst\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Zijbalk voor snelle toegang tot details and acties\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Indicatorondersteuning voor snelle toegang tot primaire acties\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\"Bureaubladnotificaties om op de hoogte te blijven van gebeurtenissen binnen \"\n\"het netwerk\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Opdrachten die volledig aangepast kunnen worden\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Backup en herstel van uw Hamachi-configuratiemap\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Let op: Vereist installatie van Hamachi op het systeem om volledig te \"\n\"kunnen gebruiken.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Bekijk uw netwerklijst en client-informatie\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Bekijk details van een geselecteerd lid\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Bekijk details van een geselecteerd netwerk\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Doorzoek uw netwerklijst\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Treed toe of maak nieuwe netwerken\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Label\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4-opdracht\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6-opdracht\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioriteit\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"Op_slaan\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Koppelen aan account\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Account\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Neem ook de door deze client aangemaakte netwerken mee\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Koppelen\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Toegang wijzigen\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Vergrendeld\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Geen nieuwe leden in het netwerk toestaan\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Goedkeuring\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatisch\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Handmatig\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Wijzigen\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Wachtwoord wijzigen\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nieuw wachtwoord\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Netwerk-ID\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Wachtwoord\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Goedkeuren\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Afwijzen\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv_4-adres kopiëren\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv_6-adres kopiëren\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Client-ID kopiëren\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Verwijderen\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Details\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"Netwerk _toetreden…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"Netwerk _aanmaken…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Online gaan\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Offline gaan\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Verlaten\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Verwijderen\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"_Toegang wijzigen…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"_Wachtwoord wijzigen…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Netwerk-ID kopiëren\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Algemeen\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuratie\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Reservekopie\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Map openen\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Bijnaam\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocol\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Zowel IPv4 als IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Alleen IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Alleen IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Gedrag\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Bijwerkinterval netwerklijst\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"A_utomatisch verbinden bij opstarten\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Automatisch een verbroken verbinding _herstellen\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Verbinding verbreken bij afsluiten\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Opdrachten\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Werkomgeving\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Uiterlijk\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Stijl\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Systeem volgen\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Licht\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Donker\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"_Indicator tonen\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notificaties\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Een notificatie tonen wanneer de verbinding is v_erbroken\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Een notificatie tonen wanneer er een lid _toetreedt\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Een notificatie tonen wanneer er een lid _uittreedt\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Een notificatie tonen wanneer er een lid o_nline komt\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Een notificatie tonen wanneer er een lid o_ffline gaat\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Reservekopie _maken…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Reservekopie _terugzetten…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Hulp tonen\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Client-informatie tonen\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Menu openen\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Voorkeuren\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Sneltoetsen\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Afsluiten\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Verbinding\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Verbinding maken\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Verbinding verbreken\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Netwerklijst\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Een netwerk toetreden\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Een netwerk aanmaken\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Verversen\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Zoeken\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Offline leden tonen/verbergen\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Alle netwerken uitklappen\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Alle netwerken inklappen\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Opdracht uitvoeren\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informatie\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Koppelen\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Annuleren\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Client-ID\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4-adres\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6-adres\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi versie\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Status\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Netwerk verlaten\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Netwerk verwijderen\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Eigenaar\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Leden\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capaciteit\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Opdrachtvariabelen\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adres\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Terminalemulator\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Bestandsbeheerder\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Werkplek op afstand\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Standaard herstellen\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Opdracht toevoegen\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Gedeelde mappen bladeren\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Werkplek op afstand bekijken\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Pingen\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Standaardactie\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Opties\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Bewerken…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Dupliceren…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Om_hoog verplaatsen\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Om_laag verplaatsen\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Als standaardactie instellen\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Verwijderen\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopiëren\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Bezig met initialiseren\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Hoofdmenu\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Zoek netwerken en leden\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Netwerk toevoegen\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi is niet meer verbonden\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Annuleren\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"U bent verbonden!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Gebruik de + knop om een netwerk toe te voegen\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Geen resultaten gevonden\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Probeer een andere zoekopdracht\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Download Hamachi en volg daarna de installatieinstructies\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Downloaden\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi is niet geconfigureerd\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Hamachi moet eerst worden geconfigureerd om te kunnen verbinden\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Configureren\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informatie\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Sorteren op _naam\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Sorteren op _status\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Offline _leden tonen\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Voorkeuren\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Snel_toetsen\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Hulp\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Over Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"A_fsluiten\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Opnieuw verbinden\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Geen internetverbinding\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Bezig met aanmelden\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Fout bij verbinden\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi login is mislukt\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Bezig met bijwerken\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Verbonden\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Lid toegetreden\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} is tot het netwerk {1} toegetreden\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} is tot het netwerk {1} en {2} ander netwerk toegetreden\"\nmsgstr[1] \"{0} is tot het netwerk {1} en {2} andere netwerken toegetreden\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Lid uitgetreden\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} heeft het netwerk {1} verlaten\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} heeft het netwerk {1} en {2} ander netwerk verlaten\"\nmsgstr[1] \"{0} heeft het netwerk {1} en {2} andere netwerken verlaten\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Lid online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} is in het netwerk {1} online gekomen\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} is in het netwerk {1} en {2} ander netwerk online gekomen\"\nmsgstr[1] \"{0} is in het netwerk {1} en {2} andere netwerken online gekomen\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Lid offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} is in het netwerk {1} offline gegaan\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} is in het netwerk {1} en {2} ander netwerk offline gegaan\"\nmsgstr[1] \"{0} is in het netwerk {1} en {2} andere netwerken offline gegaan\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Opdracht bewerken\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Opdracht toevoegen\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Koppelverzoek is verzonden\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Account niet gevonden\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Netwerk toetreden\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Netwerk aanmaken\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Toetreden\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"Aan_maken\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Toetredingsverzoek is verzonden\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Netwerk niet gevonden\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Het wachtwoord is onjuist\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Dit netwerk is vol\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Dit netwerk is gesloten\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"U bent al toegetreden tot dit netwerk\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Dit netwerk-ID is al in gebruik\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Onbekend\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anoniem\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Wachtwoord is gewijzigd\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Reservekopie wordt gemaakt…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Reservekopie is bewaard\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Maken van reservekopie is mislukt\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Reservekopie wordt teruggezet…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Reservekopie is teruggezet\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Terugzetten van reservekopie is mislukt\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Het archief bevat niet de juiste bestanden\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Bezig met verbinden\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Niet verbonden\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Haguichi tonen\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Verbinding verbreken\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Verbinding maken\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Weet u zeker dat u lid ‘{0}’ uit het netwerk ‘{1}’ wilt verwijderen?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Indien toegestaan kunnen verwijderde leden op een later moment opnieuw tot \"\n\"dit netwerk toetreden.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Uzelf\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Weet u zeker dat u het netwerk ‘{0}’ wilt verlaten?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Indien toegestaan kunt u op een later moment opnieuw tot dit netwerk \"\n\"toetreden.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Weet u zeker dat u het netwerk ‘{0}’ wilt verwijderen?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Als u een netwerk verwijderd kan dit niet meer worden hersteld.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Niet aanwezig\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Alle ondersteunde archieven\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Reservekopie maken\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Reservekopie terugzetten\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Herstellen\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Nooit\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S seconde\"\nmsgstr[1] \"%S seconden\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minuut\"\nmsgstr[1] \"%S minuten\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Niet beschikbaar\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"in afwachting\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Niet gekoppeld\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} online, {1} totaal\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Omgeleid\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Onbereikbaar\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Wacht op goedkeuring\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Onbekende fout\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protocol komt niet overeen\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Conflicterend adres\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direct\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Standaardopdrachten herstellen?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Alle aanpassingen zullen verloren gaan.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Opdracht ‘%s’ verwijderd\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"O_ngedaan maken\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Bezig met configureren\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Stephen Brandt https://launchpad.net/~ztefn\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Gekopieerd naar klembord\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Opnieuw verbinden in {0} seconde\"\nmsgstr[1] \"Opnieuw verbinden in {0} seconden\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi is niet geïnstalleerd\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi versie %s is verouderd\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi zal op de achtergrond blijven draaien voor het monitoren van de \"\n\"verbinding en het versturen van notificaties.\"\n"
  },
  {
    "path": "po/pl.po",
    "content": "# Polish translation for haguichi\n# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2025-04-15 20:46+0000\\n\"\n\"Last-Translator: Eryk Michalak <gnu.ewm@protonmail.com>\\n\"\n\"Language-Team: Polish <https://hosted.weblate.org/projects/haguichi/haguichi/\"\n\"pl/>\\n\"\n\"Language: pl\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \"\n\"|| n%100>=20) ? 1 : 2);\\n\"\n\"X-Generator: Weblate 5.11-dev\\n\"\n\"X-Launchpad-Export-Date: 2022-08-28 16:12+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Menedżer sieci Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funkcje:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Lista sieci, którą można przeszukiwać, porządkować i zwijać\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Panel boczny z łatwym dostępem do informacji i działań\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"\"\n\"Tworzenie kopii zapasowej i przywracanie katalogu z konfiguracją Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Proszę zauważyć: do użycia wymagana jest instalacja programu Hamachi na \"\n\"komputerze.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Wyświetlenie informacji o kliencie\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\n#, fuzzy\nmsgid \"Search your network list\"\nmsgstr \"Lista sieci, którą można przeszukiwać, porządkować i zwijać\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Dołączenie do sieci\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etykieta\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Polecenie IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Polecenie IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorytet\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Zapisz\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Dołącz do konta\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Konto\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Dołączenie wszystkich sieci utworzonych przez tego klienta\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Dołącz\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Zmień dostęp\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Zablokowany\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Potwierdzenie\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatycznie\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Ręcznie\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Zmień\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Zmień hasło\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nowe hasło\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Identyfikator sieci\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Hasło\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Zatwierdź\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Odrzuć\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Skopiuj adres IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Skopiuj adres IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"S_kopiuj identyfikator klienta\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Wyklucz\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Szczegóły\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Dołącz do sieci…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Utwórz sieć…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Przejdź do trybu online\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Przejdź do trybu offline\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Opuść\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Usuń\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Zmień _dostęp…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Zmień _hasło…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"S_kopiuj identyfikator sieci\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Ogólne\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfiguracja\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Kopia zapasowa\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Otwórz katalog\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Pseudonim\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokół\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 i IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Tylko IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Tylko IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Zachowanie\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Aut_omatyczne łączenie po uruchomieniu\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Automatyczne w_znawianie połączenia po jego zerwaniu\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Rozłączanie podczas wyłączania programu\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Polecenia\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Pulpit\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Wygląd\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Styl\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Zgodny z systemowym\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Jasny\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Ciemny\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"_Wskaźnik\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Powiadomienia\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Po ze_rwaniu połączenia\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Kiedy dołącza _nowy członek\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Kiedy członek _opuszcza sieć\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Kiedy członek przechodzi do trybu o_nline\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Kiedy członek przechodzi do trybu o_ffline\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Zapisz _kopię zapasową…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"P_rzywróć z kopii zapasowej…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Wyświetlenie pomocy\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Wyświetlenie informacji o kliencie\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Otwarcie menu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferencje\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Skróty klawiszowe\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Zakończenie działania\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Połączenie\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Połączenie\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Rozłączenie\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Lista sieci\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Dołączenie do sieci\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Utworzenie sieci\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Odświeżenie\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Wyszukiwanie\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Wyświetlenie/ukrycie członków w trybie offline\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Rozwinięcie wszystkich sieci\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Zwinięcie wszystkich sieci\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Wykonanie polecenia\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informacje\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Dołącz\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Anuluj\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Identyfikator klienta\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Adres IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Adres IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Wersja Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Stan\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Opuść sieć\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Usuń sieć\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Właściciel\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Członkowie\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Pojemność\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Zmienne polecenia\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adres\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Emulator terminala\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Menedżer plików\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Wyświetl zdalny pulpit\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Przywróć domyślne\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Dodaj polecenie\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"P_rzeglądaj udziały\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Wyświetl zdalny pulpit\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"_Ustaw jako domyślne działanie\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Opcje\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Modyfikuj…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_plikuj…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"W _górę\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"W _dół\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"U_staw jako domyślne działanie\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Usuń\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopiuj\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inicjowanie\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\n#, fuzzy\nmsgid \"Search networks and members\"\nmsgstr \"Menedżer sieci Hamachi\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Dołącz do sieci\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi utraciło połączenie\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Anuluj\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Jesteś połączony!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Użyj przycisku +, aby dodać sieć\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Proszę pobrać Hamachi i postępować zgodnie z instrukcjami instalacji\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Pobierz\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi nie jest skonfigurowane\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Należy skonfigurować Hamachi przed połączeniem\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"Sk_onfiguruj\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informacje\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Porządkowanie według _nazwy\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Porządkowanie według _stanu\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Wyświetlanie członków w trybie _offline\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferencje\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Skróty klawiszowe\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"Pomo_c\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_O programie\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"Za_kończ\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Połącz ponownie\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Brak połączenia z Internetem\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Logowanie\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Błąd podczas łączenia\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Zalogowanie do Hamachi się nie powiodło\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Aktualizowanie\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Połączono\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Członek dołączył\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"Użytkownik {0} dołączył do sieci {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"Użytkownik {0} dołączył do sieci {1} i {2} innej sieci\"\nmsgstr[1] \"Użytkownik {0} dołączył do sieci {1} i {2} innych sieci\"\nmsgstr[2] \"Użytkownik {0} dołączył do sieci {1} i {2} innych sieci\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Członek opuścił\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"Użytkownik {0} opuścił sieć {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"Użytkownik {0} opuścił sieć {1} i {2} inną sieć\"\nmsgstr[1] \"Użytkownik {0} opuścił sieć {1} i {2} inne sieci\"\nmsgstr[2] \"Użytkownik {0} opuścił sieć {1} i {2} innych sieci\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Członek jest w trybie online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"Użytkownik {0} przeszedł do trybu online w sieci {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\n\"Użytkownik {0} przeszedł do trybu online w sieci {1} i {2} innej sieci\"\nmsgstr[1] \"\"\n\"Użytkownik {0} przeszedł do trybu online w sieci {1} i {2} innych sieciach\"\nmsgstr[2] \"\"\n\"Użytkownik {0} przeszedł do trybu online w sieci {1} i {2} innych sieciach\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Członek jest w trybie offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"Użytkownik {0} przeszedł do trybu offline w sieci {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"\"\n\"Użytkownik {0} przeszedł do trybu offline w sieci {1} i {2} innej sieci\"\nmsgstr[1] \"\"\n\"Użytkownik {0} przeszedł do trybu offline w sieci {1} i {2} innych sieciach\"\nmsgstr[2] \"\"\n\"Użytkownik {0} przeszedł do trybu offline w sieci {1} i {2} innych sieciach\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Modyfikuj polecenie\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Dodaj polecenie\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Wysłano prośbę o dołączenie\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Nie odnaleziono konta\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Dołącz do sieci\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Utwórz sieć\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Dołącz\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Utwórz\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Wysłano prośbę o dołączenie\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Nie odnaleziono sieci\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Nieprawidłowe hasło\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Sieć jest pełna\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Sieć jest zablokowana\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Dołączono już do tej sieci\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Identyfikator sieci jest już zajęty\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Nieznany\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonimowy\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Hasło\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"Zapisz _kopię zapasową…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"P_rzywróć z kopii zapasowej…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Archiwum nie zawiera oczekiwanych plików\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Łączenie\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Rozłączono\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Wyświetl program Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Rozłącz\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"P_ołącz\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Na pewno wykluczyć członka „{0}” z sieci „{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Jeśli zostanie przyjęte, to wyrzuceni członkowie mogą ponownie dołączyć do \"\n\"sieci w dowolnym czasie.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Ty\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Na pewno opuścić sieć „{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Jeśli zostanie przyjęte, to można ponownie dołączyć do sieci w dowolnym \"\n\"czasie.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Na pewno usunąć sieć „{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Jeśli sieć zostanie usunięta, to zostanie ona trwale utracona.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Wszystkie obsługiwane archiwa\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Zapisz kopię zapasową\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Przywróć z kopii zapasowej\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"P_rzywróć\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Nigdy\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Niedostępny\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"oczekujące\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} online, {1} razem\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Przekierowane\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nieosiągalny\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Oczekiwanie na potwierdzenie\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Nieznany błąd\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Niezgodność protokołu\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Konflikt adresu\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Bezpośrednie\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Konfigurowanie\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Antoni Sperka https://launchpad.net/~antek1004-gmail\\n\"\n\"Eryk Michalak https://hosted.weblate.org/user/gnu-ewm/\\n\"\n\"Piotr Drąg https://launchpad.net/~piotrdrag\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Ponowne łączenie za {0} sekundę\"\nmsgstr[1] \"Ponowne łączenie za {0} sekundy\"\nmsgstr[2] \"Ponowne łączenie za {0} sekund\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi nie jest zainstalowane\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Wersja %s programu Hamachi jest przestarzała\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/pt.po",
    "content": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER\n# This file is distributed under the same license as the haguichi package.\n# André Barata <andretiagob@protonmail.com>, 2020.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2025-04-18 20:16+0000\\n\"\n\"Last-Translator: ssantos <ssantos@web.de>\\n\"\n\"Language-Team: Portuguese <https://hosted.weblate.org/projects/haguichi/\"\n\"haguichi/pt/>\\n\"\n\"Language: pt\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.11.1-dev\\n\"\n\"X-Launchpad-Export-Date: 2022-08-28 16:08+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Administrador de Rede Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Gira as suas redes Hamachi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"LogMeIn Hamachi;VPN;LAN;Rede;Internet;P2P;Peer;Client;GUI;Frontend;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi facilita muito a participação, criação e administração de redes \"\n\"Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funcionalidades:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Lista de redes com pesquisa, ordenação e agrupamento\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Barra lateral para um acesso fácil aos detalhes e ações\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Suporte para indicadores para acesso rápido às principais ações\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\"Notificações na área de trabalho para manter-se atualizado sobre os eventos \"\n\"da rede\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Comandos que podem ser completamente personalizados\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Backup e restauração da sua pasta de configuração do Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Nota: É necessária a instalação do Hamachi no sistema para ser usado.</\"\n\"em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Visualize a lista da sua rede e informações do cliente\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Visualizar pormenores do membro selecionado\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Visualizar pormenores da rede selecionada\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Pesquisar a sua lista de redes\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Participar ou criar redes\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etiqueta\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Comando IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Comando IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioridade\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Gravar\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Anexar a uma Conta\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Conta\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Incluir todas as redes criadas por este cliente\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Anexar\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Alterar Acesso\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Trancado\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Não aceitar novos membros na rede\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Aprovação\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaticamente\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manualmente\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Alterar\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Alterar Senha\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nova Senha\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID de Rede\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Senha\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Aprovar\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Rejeitar\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copiar Endereço IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copiar Endereço IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copiar ID de Cliente\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Expulsar\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Detalhes\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Juntar-se à Rede…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Criar Rede…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Ficar Ligado\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Ficar Desligado\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Sair\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Apagar\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Alterar _Acesso…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Alterar _Senha…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Copiar ID de Rede\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Geral\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuração\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Backup\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Abrir Pasta\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Alcunha\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocolo\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Ambos IPv4 e IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Somente IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Somente IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportamento\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"Intervalo de atualização da lista de _redes\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Conectar automaticamente ao iniciar\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Reconectar automaticamente quando a conexão for perdida\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Desconectar ao sair\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Comandos\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Ambiente de Trabalho\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Aparência\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Estilo\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Seguir o Tema do Sistema\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Claro\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Escuro\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Mostrar _Indicador\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notificações\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Exibir notificação quando a conexão é _perdida\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Exibir notificação quando um membro se _junta\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Exibir notificação quando um membro _sai\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Exibir notificação quando um membro fica _ligado\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Exibir notificação quando um membro fica _desligado\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Gravar uma Cópia de Segurança…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Restaurar de uma Cópia de Segurança…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Mostrar ajuda\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Mostrar informação do cliente\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Abrir menu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferências\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Atalhos de teclado\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Sair\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Conexão\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Conectar\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Desconectar\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Lista de Redes\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Juntar-se a uma rede\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Criar uma rede\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Atualizar\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Procurar\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Mostrar/esconder membros desligados\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Expandir todas as redes\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Colapsar todas as redes\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Executar comando\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informação\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Anexar\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID de Cliente\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Endereço IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Endereço IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Versões do Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Estado\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Sair da Rede\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Apagar Rede\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Proprietário\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Membros\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacidade\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Túnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Variáveis de Comando\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Endereço\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Emulador de Terminal\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Gestor de Ficheiros\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Visualizador de Área de Trabalho Remota\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Restaurar Padrão\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Adicionar Comando\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Navegar nas Partilhas\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Ver Computador Remoto\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Ação Padrão\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Opções\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Editar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_plicar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Mover para _cima\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Mover para _baixo\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Definir como ação padrão\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Remover\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"A inicializar\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Menu Principal\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Pesquisar redes e membros\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Adicionar Rede\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"O Hamachi perdeu a ligação\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Cancelar\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Está conectado!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Use o botão + para adicionar uma rede\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Nenhum Resultado Encontrado\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Tentar uma pesquisa diferente\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Por favor descarregue o Hamachi e siga as instruções de instalação\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Descarregar\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"O Hamachi não está configurado\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Tem que configurar o Hamachi antes de poder conectar\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Configurar\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informação\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Ordenar por _Nome\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Ordenar por _Estado\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Mostrar _Membros Desligados\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferências\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Atalhos de teclado\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"A_juda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Sobre o Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"Sai_r\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Reconectar\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Sem ligação à Internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"A entrar\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Erro ao conectar\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"O login no Hamachi falhou\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"A atualizar\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Conectado\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Membro juntou-se\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} juntou-se à rede {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} juntou-se à rede {1} e {2} outra rede\"\nmsgstr[1] \"{0} juntou-se à rede {1} e {2} outras redes\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Membro saiu\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} saiu da rede {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} saiu da rede {1} e {2} outra rede\"\nmsgstr[1] \"{0} saiu da rede {1} e {2} outras redes\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Membro ligado\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} ficou ligado na rede {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} ficou ligado na rede {1} e {2} outra rede\"\nmsgstr[1] \"{0} ficou ligado na rede {1} e {2} outras redes\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Membro desligado\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} ficou desligado na rede {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} ficou desligado na rede {1} e {2} outra rede\"\nmsgstr[1] \"{0} ficou desligado na rede {1} e {2} outras redes\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Editar Comando\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Adicionar Comando\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Solicitação de anexação enviada\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Conta não encontrada\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Juntar-se à Rede\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Criar Rede\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Juntar-se\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_riar\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Pedido de adesão enviado\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Rede não encontrada\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Senha invalida\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"A rede está cheia\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"A rede está bloqueada\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Já se juntou a esta rede\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"O ID da rede já está em uso\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Desconhecido\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anónimo\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Palavra-passe alterada\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"A gravar backup…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Backup gravado\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Falha ao gravar o backup\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"A restaurar backup…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Backup restaurado\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Falha ao restaurar o backup\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"O arquivo não contém os ficheiros esperados\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"A conectar\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Desconectado\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Mostrar Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Desconectar\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"_Conectar\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Tem a certeza que deseja expulsar o membro “{0}” da rede “{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Se escolheu sim, membros expulsos podem voltar a juntar-se a esta rede em \"\n\"qualquer altura.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Você\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Tem a certeza que deseja sair desta rede “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Se escolheu sim, pode voltar a juntar-se a esta rede em qualquer altura.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Tem a certeza que deseja apagar esta rede “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Se apagar uma rede, esta vai ser perdida permanentemente.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Ausente\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Todos os arquivos suportados\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Gravar uma Cópia de Segurança\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Restaurar de uma Cópia de Segurança\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Restaurar\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Nunca\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S segundo\"\nmsgstr[1] \"%S segundos\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minuto\"\nmsgstr[1] \"%S minutos\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Indisponível\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"pendente\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Não anexado\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} ligados, {1} total\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Desligado\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Ligado\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Retransmitido\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Inacessível\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"A aguardar aprovação\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Erro desconhecido\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protocolo incompatível\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Conflito de endereço\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direto\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Restaurar comandos padrão?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Todas as customizações serão perdidas.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Comando “%s” removido\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Desfazer\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"A configurar\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"André Barata https://github.com/rottenpants466\\n\"\n\"Silvério Santos https://hosted.weblate.org/user/ssantos/\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Copiado para a área de transferência\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"A reconectar em {0} segundo\"\nmsgstr[1] \"A reconectar em {0} segundos\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"O Hamachi não está instalado\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"A versão do Hamachi %s é obsoleta\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi continuará em execução quando a janela for fechada para que possa \"\n\"monitorar a conexão e enviar notificações.\"\n"
  },
  {
    "path": "po/pt_BR.po",
    "content": "# Brazilian Portuguese translation for haguichi\n# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-06-17 13:17+0000\\n\"\n\"Last-Translator: Rodrigo de Avila <Unknown>\\n\"\n\"Language-Team: Brazilian Portuguese <pt_BR@li.org>\\n\"\n\"Language: pt_BR\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n > 1;\\n\"\n\"X-Launchpad-Export-Date: 2024-06-17 18:32+0000\\n\"\n\"X-Generator: Launchpad (build bbfa2351d9d6a9ddfe262109428f7bf5516e65d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Gerenciador de Rede Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Gerencie suas redes Hamachi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"LogMeIn Hamachi;VPN;LAN;Rede;Internet;P2P;Peer;Client;GUI;Frontend;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi facilita muito a participação, criação e administração de redes \"\n\"Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funcionalidades:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Lista de redes com busca, ordenação e agrupamento\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Barra lateral para acesso fácil aos detalhes e ações\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Suporte para indicadores para acesso rápido às principais ações\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\"Notificações na área de trabalho para se manter atualizado sobre os eventos \"\n\"da rede\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Comandos que podem ser completamente personalizados\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Backup e restauração da sua pasta de configuração do Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Observação: Requer a instalação do Hamachi no sistema para usar.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Visualize a lista da sua rede e informações do cliente\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Visualizar detalhes do membro selecionado\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Visualizar detalhes da rede selecionada\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Pesquisar sua lista de redes\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Participar ou criar redes\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Rótulo\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"Comando IPv4\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"Comando IPv6\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioridade\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Salvar\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Anexar à Conta\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Conta\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Incluir todas as redes criadas por este cliente\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Anexar\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Alterar Acesso\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Trancado\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Não aceitar novos membros na rede\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Aprovação\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaticamente\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manualmente\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"A_lterar\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Alterar Senha\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nova senha\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID da rede\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Senha\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Aprovar\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Rejeitar\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Copiar Endereço IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Copiar Endereço IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Copiar ID do Cliente\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Expulsar\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Detalhes\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Junte-se à Rede…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Criar Rede…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Ficar Online\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Ficar Offline\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Sair\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"E_xcluir\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Alterar _Acesso…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Alterar _Senha…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Copiar ID da Rede\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Geral\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Configuração\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Backup\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Abrir Pasta\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Apelido\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protocolo\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Tanto IPv4 quanto IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Apenas IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Apenas IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Comportamento\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"Intervalo de atualização da lista de _redes\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Conectar automaticamente na inicialização\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Reconectar automaticamente quando a conexão for perdida\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Desconectar ao sair\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Comandos\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Ambiente de Trabalho\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Aparência\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Estilo\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Seguir o Tema do Sistema\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Claro\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Escuro\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Mostrar _indicador\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notificaçőes\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Exibir notificação quando a conexão for perdida\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Exibir notificação quando um membro se _junta\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Exibir notificação quando um membro _sai\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Exibir notificação quando um membro se _conecta\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Exibir notificação quando um membro se d_esconecta\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Salvar um Backup…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Restaurar de um Backup…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Mostrar ajuda\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Mostrar informação do cliente\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Abre o menu\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Preferências\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Atalhos de teclado\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Sai\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Conexão\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Conectar\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Desconectar\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Lista de Rede\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Unir-se à rede\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Criar uma rede\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Atualizar\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Pesquisar\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Mostrar / esconder membros offline\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Expandir todas as redes\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Esconder todas as redes\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Executar comando\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informações\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Anexar\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Cancelar\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID do cliente\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Endereço IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Endereço IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Versões do Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Estado\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Sair da Rede\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Excluir Rede\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Proprietário\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Membros\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Capacidade\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Túnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Variáveis de Comando\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Endereço\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Emulador de Terminal\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Gerenciador de Arquivos\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Visualizador de Área de Trabalho Remota\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Restaurar Padrão\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Adicionar Comando\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Navegar nos Compartilhamentos\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Ver Desktop remoto\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Ação Padrão\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Opções\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Editar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Du_plicar…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Mover para _cima\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Mover para _baixo\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Definir como ação padrão\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Remover\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Copiar\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Inicializando\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Menu Principal\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Pesquisar redes e membros\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Adicionar Rede\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"O Hamachi perdeu a conexão\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Cancelar\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Você está conectado!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Use o botão + para adicionar uma rede\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Nenhum Resultado Encontrado\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Tentar uma pesquisa diferente\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"\"\n\"Por favor efetue o download do hamachi e siga as instruções do instalador\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Baixar\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"O Hamachi não está configurado\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Você precisa configurar o hamachi antes de conectar\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"C_onfigurar\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informações\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Ordenar por _Nome\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Ordenar por _Status\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Exibir Membros _Desconectados\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Preferências\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"Atalhos de _teclado\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"Aj_uda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Sobre o Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"Sai_r\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Reconectar\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Sem conexão à internet\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Autenticando\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Erro ao conectar\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Falha no login do Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Atualizando\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Conectado\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Membro juntou-se\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} juntou-se à rede {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} juntou-se à rede {1} e a {2} outra rede\"\nmsgstr[1] \"{0} juntou-se à rede {1} e a {2} outras redes\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Membro saiu\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} saiu da rede {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} saiu da rede {1} e de {2} outra rede\"\nmsgstr[1] \"{0} saiu da rede {1} e de {2} outras redes\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Membro conectado\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} conectou-se na rede {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} conectou-se na rede {1} e em {2} outra rede\"\nmsgstr[1] \"{0} conectou-se na rede {1} e em {2} outras redes\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Membro desconectado\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} desconectou-se da rede {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} desconectou-se da rede {1} e de {2} outra rede\"\nmsgstr[1] \"{0} desconectou-se da rede {1} e de {2} outras redes\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Editar Comando\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Adicionar Comando\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Solicitação de anexação enviada\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Conta não encontrada\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Junte-se à Rede\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Criar Rede\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Junte-se\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"C_riar\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Requisição para juntar-se foi enviada\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Rede não encontrada\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Senha inválida\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"A rede está cheia\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"A rede está trancada\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Você já juntou-se a esta Rede antes\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Este ID de rede já está em uso\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Desconhecido\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anônimo\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Senha alterada\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Salvando backup…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Backup salvo\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Falha ao salvar o backup\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Restaurando backup…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Backup restaurado\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Falha ao restaurar o backup\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"O arquivo não contém os arquivos esperados\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Conectando\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Desconectado\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Mostrar o Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Desconectar\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"C_onectar\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Tem certeza que quer expulsar o membro “{0}” da rede “{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Se permitido, os membros expulsos podem se juntar novamente a esta rede a \"\n\"qualquer momento.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Você\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Tem certeza que quer sair da rede “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Se permitido, você poderá se juntar novamente a esta rede a qualquer momento.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Tem certeza que quer remover a rede “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Se você remover a rede, ela será permanentemente perdida.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Ausente\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Todos os arquivos suportados\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Salvar um Backup\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Restaurar de um Backup\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Restaurar\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Nunca\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S segundo\"\nmsgstr[1] \"%S segundos\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minuto\"\nmsgstr[1] \"%S minutos\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Indisponível\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"pendente\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Não anexado\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} conectados, total de {1}\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Desconectado\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Conectado\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Retransmitida\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Inacessível\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Aguardando aprovação\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Erro desconhecido\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Incompatibilidade de protocolo\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Endereço conflitante\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direta\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Restaurar comandos padrão?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Todas as customizações serão perdidas.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Comando “%s” removido\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Desfazer\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Configurando\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Rodrigo de Avila https://launchpad.net/~rdeavila\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Copiado para a área de transferência\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Reconectando em {0} segundo\"\nmsgstr[1] \"Reconectando em {0} segundos\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"O Hamachi não está instalado\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"A versão %s do Hamachi é obsoleta\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi continuará em execução quando a janela for fechada para que possa \"\n\"monitorar a conexão e enviar notificações.\"\n"
  },
  {
    "path": "po/ru.po",
    "content": "# Russian translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-08-30 16:46+0000\\n\"\n\"Last-Translator: Alexey Fedorov <Unknown>\\n\"\n\"Language-Team: Russian <ru@li.org>\\n\"\n\"Language: ru\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\"X-Launchpad-Export-Date: 2024-08-30 22:32+0000\\n\"\n\"X-Generator: Launchpad (build 1b1ed1ad2dbfc71ee62b5c5491c975135a771bf0)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Сетевой менеджер Hamachi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Управляйте сетями Hamachi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"Хамачи;Hamachi;ВПН;VPN;ЛАН;Сеть;Интернет;П2П;Пир;Клиент;Графический;интерфейс;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi позволяет легко присоединяться, создавать и администрировать сети \"\n\"Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Возможности:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Список сетей с возможностью поиска, сортировки и складывания\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Боковая панель для быстрого доступа к деталям и действиям\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Поддержка индикаторов для быстрого доступа к первичным действиям\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Уведомления на рабочем столе, чтобы всегда быть в курсе событий в сети\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Команды, которые можно полностью настроить под себя\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Резервное копирование и восстановление папки конфигурации Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"<em>Важно: Для использования необходим установленный Hamachi</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Просмотр списка сетей и информации о клиентах\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Просмотр сведений о выбранном участнике\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Просмотр сведений о выбранной сети\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Поиск по списку сетей\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Создание и присоединение к сетям\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Метка\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Приоритет\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"Со_хранить\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Прикрепить к учётной записи\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Учётная запись\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Включить все сети, созданные этим клиентом\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Прикрепить\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Изменить доступ\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Заблокирован\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Не принимать новых членов сети\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Одобрение\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Автоматически\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Вручную\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Изменить\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Смена пароля\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Новый пароль\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Идентификатор сети\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Пароль\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Одобрить\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Отклонить\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Копировать адрес IPv_4\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Копировать адрес IPv_6\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Скопировать идентификационный номер клиента\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Выгнать\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Подробнее\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Подключиться к сети…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Создать сеть…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Статус “в сети”\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Статус “не в сети”\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Выйти\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Удалить\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Изменить _доступ…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Изменить _пароль…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"Ск_опировать идентификационный номер сети\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Общие\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Настройки\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Резервное копирование\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Открыть папку\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Псевдоним\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Протокол\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Оба, IPv4 и IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"только IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"только IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Поведение\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Интервал обновления списка сетей\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Автоматически подключаться при запуске\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"А_втоматически подключаться при потере соединения\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Отключаться при выходе\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Команды\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Рабочий стол\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Внешний вид\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Стиль\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Как в системе\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Светлый\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Темный\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Показать _индикатор\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Уведомления\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Отобразить уведомления о _потере соединения\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"П_оказывать уведомление, когда к сети подключается пользователь\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"По_казывать уведомление, когда пользователь отключается от сети\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Пок_азывать уведомление, когда пользователь выходит в онлайн\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Пока_зывать уведомление, когда пользователь уходит из сети\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"Сделать _резервную копию…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Восстановить с резервной копии…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Показать справку\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Показать информацию о клиенте\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Открыть меню\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Параметры\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Комбинации клавиш\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Выход\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Подключение\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Подключиться\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Отключиться\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Список сетей\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Присоединиться к сети\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Создать сеть\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Обновить\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Поиск\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Показать / скрыть офлайн-пользователей\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Развернуть все сети\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Свернуть все сети\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Выполнить команду\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Сведения\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Прикрепить\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Отменить\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Идентификатор клиента\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 адрес\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 адрес\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Версия Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Статус\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Покинуть сеть\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Удалить сеть\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Владелец\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Члены\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Вместимость\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Тоннель\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Переменные команд\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Адрес\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Эмулятор терминала\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Управление файлами\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Просмотр удалённых рабочих столов\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"По _умолчанию\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Добавить команду\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Просмотр открытых каталогов\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"П_росмотр удалённого рабочего стола\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Пинг\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Действие по умолчанию\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Параметры\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Изменить…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Дублировать…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"В_верх\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"В_низ\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Сохранить как действие по умолчанию\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Удалить\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Копировать\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Инициализация\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Главное меню\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Поиск сетей и участников\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Добавить сеть\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi потерял соединение\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"О_тменить\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Вы подключены!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Используйте кнопку +, чтобы добавить сеть\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Результатов не найдено\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Попробуйте изменить поисковый запрос\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Пожалуйста, скачайте Hamachi и следуйте инструкциям установки\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Загрузить\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi не настроен\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Для подключения вам необходимо настроить Hamachi\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Настроить\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Информация\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Упорядочить по _имени\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Упорядочить по _статусу\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Показывать тех, кто “не в сети”\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Параметры\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Комбинации клавиш\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"П_омощь\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_О приложении\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"В_ыход\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Подключиться повторно\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Отсутствует соединение с интернет\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Авторизация\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Ошибка при подключении\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Ошибка при подключении Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Обновление\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Подключен\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Пользователь подключился\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} подключился к сети {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} подключился к сети {1} и ещё {2} сети\"\nmsgstr[1] \"{0} подключился к сети {1} и ещё {2} сетям\"\nmsgstr[2] \"{0} подключился к сети {1} и ещё {2} сетям\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Пользователь покинул сеть\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} покинул сеть {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} покинул сеть {1} и ещё {2} сеть\"\nmsgstr[1] \"{0} покинул сеть {1} и ещё {2} сети\"\nmsgstr[2] \"{0} покинул сеть {1} и ещё {2} сетей\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Пользователь в сети\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} вошел в сеть {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} подключился к сети {1} и ещё {2} сети\"\nmsgstr[1] \"{0} подключился к сети {1} и ещё {2} сетям\"\nmsgstr[2] \"{0} подключился к сети {1} и ещё {2} сетям\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Пользователь отключился\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} отключился от сети {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} ушел из сети {1} и ещё {2} сети\"\nmsgstr[1] \"{0} ушел из сети {1} и ещё {2} сетей\"\nmsgstr[2] \"{0} ушел из сети {1} и ещё {2} сетей\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Изменить команду\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Добавить команду\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Отправлен запрос на присоединение\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Учётная запись не найдена\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Подключиться к сети\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Создать сеть\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Подключиться\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"_Создать\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Запрос на подключение послан\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Сеть не найдена\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Неправильный пароль\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Сеть переполнена\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Сеть заблокирована\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Вы уже подключены к этой сети\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Сеть с данным ID уже существует\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Неизвестный\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Аноним\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Пароль изменен\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Сохранение резервной копии…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Резервная копия сохранена\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Ошибка сохранения резервной копии\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Восстановление резервной копии…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Резервная копия восстановлена\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Не удалось восстановить\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Архив не содержит необходимых файлов\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Подключение\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Отключен\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Показать Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Отключиться\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"П_одключиться\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Вы уверены, что хотите выгнать «{0}» из сети «{1}»?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Выгнанные участники всегда смогут заново подключиться к выбранной сети.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Вы\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Вы уверены что хотите покинуть сеть «{0}»?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Вы всегда сможете заново подключиться к выбранной сети.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Вы уверены что хотите удалить сеть «{0}»?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Если вы удалите сеть, она удалиться без возможности восстановления.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Отсутствует\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Все поддерживаемые архивы\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Создать резервную копию\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Восстановить из резервной копии\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Восстановить\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Никогда\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S секунда\"\nmsgstr[1] \"%S секунды\"\nmsgstr[2] \"%S секунд\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S минута\"\nmsgstr[1] \"%S минуты\"\nmsgstr[2] \"%S минут\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Недоступно\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"ожидается\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Не присоедиен\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} в сети, {1} всего\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Не в сети\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"В сети\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Через ретранслятор\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Недоступен\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Ожидание одобрения\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Неизвестная ошибка\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Протокол не совпадает\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Конфликтующие адреса\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Прямое\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Вернуть стандартные команды?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Все изменения будут утеряны\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Удалена команда «%s»\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Вернуть\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Настройка\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Alexey Fedorov https://launchpad.net/~alexei963\\n\"\n\"Dmitrij Kiryanov https://launchpad.net/~kagaminep\\n\"\n\"Matvey https://launchpad.net/~astrr\\n\"\n\"jmb_kz https://launchpad.net/~jmb-kz\\n\"\n\"Sergey Korolev https://launchpad.net/~slipped-on-blade\\n\"\n\"Sergey Sedov https://launchpad.net/~serg-sedov\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Скопировано в буфер обмена\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Повторное подключение через {0} секунду\"\nmsgstr[1] \"Повторное подключение через {0} секунд\"\nmsgstr[2] \"Повторное подключение через {0} секунд\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi не установлен\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Версия Hamachi %s устарела\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi будет продолжать работать, когда его окно закрыто, чтобы он мог \"\n\"следить за соединением и отправлять уведомления.\"\n"
  },
  {
    "path": "po/sk.po",
    "content": "# Slovak translation for haguichi\n# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2026-03-19 22:36+0000\\n\"\n\"Last-Translator: Parrot HatOSS <parrothat.oss@gmail.com>\\n\"\n\"Language-Team: Slovak <https://hosted.weblate.org/projects/haguichi/haguichi/\"\n\"sk/>\\n\"\n\"Language: sk\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\\n\"\n\"X-Generator: Weblate 5.17-dev\\n\"\n\"X-Launchpad-Export-Date: 2018-04-04 17:28+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Vlastnosti:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Ľavý panel pre ľahkú prístupnosť na detaily a akcie\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\n#, fuzzy\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Konfigurácia sa nedá obnoviť\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Poznámka: Potrebuje inštaláciu Hamachi na systéme pre používanie.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\n#, fuzzy\nmsgid \"View your network list and client information\"\nmsgstr \"Zobraziť informácie o klientovi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Vyhladať svoj sieťový list\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\n#, fuzzy\nmsgid \"Join or create networks\"\nmsgstr \"Pripojiť sa k sieti\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Štítok\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 príkaz\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 príkaz\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Priorita\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Uložiť\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Pričleniť k účtu\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Účet\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Zahrnúť všetky siete vytvorené týmto klientom\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Pričleniť\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\n#, fuzzy\nmsgid \"Change Access\"\nmsgstr \"Zmeniť prezývku\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Uzamknuté\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Neakceptovať nových sieťových členov\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Schválenie\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automaticky\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Ručne\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Zmeniť\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Zmeniť heslo\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nové heslo\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ID siete\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Heslo\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Schváliť\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Odmietnuť\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Kopírovať IPv_4 adresu\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Kopírovať IPv_6 adresu\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kopírovať ID klienta\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Vyhodiť\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Vstúpiť do siete…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Vytvoriť sieť…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Ísť o_nline\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Ísť o_ffline\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Odísť\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"O_dstrániť\"\n\n#: data/ui/menus/network-menu.ui:36\n#, fuzzy\nmsgid \"Change _Access…\"\nmsgstr \"Zmeniť p_rezývku…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Zmeniť _heslo…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Kopírovať ID siete\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Obecné\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfigurácia\"\n\n#: data/ui/preferences.ui:20\n#, fuzzy\nmsgid \"Backup\"\nmsgstr \"Uložiť zálohu\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Otvoriť zložku\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Prezývka\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokol\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Obaja IPv4 a IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Iba IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Iba IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Chovanie\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Prip_ojiť automaticky pri spustení\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"Automaticky obnoviť spojenie, ak bolo st_ratené\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"O_dpojiť pri ukončení\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Príkazy\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Plocha\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Vzhľad\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Zobraziť _indikátor\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Upozornenia\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Z_obraziť upozornenie, keď je spojenie stratené\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Zobraziť upozornenie, keď sa člen pripo_jí\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Zobraziť upozornenie, keď sa č_len odpojí\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Zobraziť upozornenie, keď člen zmení stav na o_nline\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Zobraziť upozornenie, keď člen zmení stav na o_ffline\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Uložiť zálohu…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Obnoviť zo zálohy…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Zobraziť nápovedu\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Zobraziť informácie o klientovi\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Otvorenie ponuky\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Predvoľby\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Klávesové skratky\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Koniec\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Spojenie\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Pripojiť\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Odpojiť\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Zoznam sietí\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Pripojiť sa k sieti\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Vytvoriť sieť\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Obnoviť\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Hľadať\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Zobraziť/skryť offline členov\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Rozbaliť všetky siete\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Zbaliť všetky siete\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Vykonať príkaz\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Informácie\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Pričleniť\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Zrušiť\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ID klienta\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 adresa\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 adresa\"\n\n#: data/ui/sidebar.ui:68\n#, fuzzy\nmsgid \"Hamachi Version\"\nmsgstr \"Verze Hamachi %s je zastaraná\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Stav\"\n\n#: data/ui/sidebar.ui:87\n#, fuzzy\nmsgid \"Leave Network\"\nmsgstr \"Vytvoriť sieť\"\n\n#: data/ui/sidebar.ui:98\n#, fuzzy\nmsgid \"Delete Network\"\nmsgstr \"Vytvoriť sieť\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Vlastník\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Členovia\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapacita\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\n#, fuzzy\nmsgid \"Command Variables\"\nmsgstr \"Príkazy\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adresa\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"\"\n\n#: data/ui/widgets/command-entry-row.ui:75\n#, fuzzy\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"_Zobraziť vzdialenú plochu\"\n\n#: data/ui/widgets/commands-editor.ui:12\n#, fuzzy\nmsgid \"_Restore Default\"\nmsgstr \"O_bnoviť\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"P_ridať príkaz\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"P_rechádzať zdieľané\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Zobraziť vzdialenú plochu\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\n#, fuzzy\nmsgid \"Default Action\"\nmsgstr \"Nastaviť ako _predvolenú akciu\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Upraviť…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplikovať…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Posunúť _vyššie\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Posunúť _nižšie\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"Nastaviť ako _predvolenú akciu\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Odstrániť\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"\"\n\n#: data/ui/window.ui:299\n#, fuzzy\nmsgid \"Add Network\"\nmsgstr \"Vstúpiť do siete\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Strata Hamachi spojenia\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Zrušiť\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Ste pripojený!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Použite tlačidlo + na pridanie siete\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Stiahnite si Hamachi a postupujte podľa inštalačných inštrukcií\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Stiahnuť\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi nie je nastavené\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Pred pripojením je potrebné Hamachi nastaviť\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Nastaviť\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Informácie\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Radiť podľa me_na\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Radiť podľa _stavu\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"Zobraziť _offline členov\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Predvoľby\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Klávesové skratky\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Nápoveda\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_O aplikácii Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"_Koniec\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Znova pripojiť\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Žiadne pripojenie k internetu\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Prihlasovanie\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Chyba pri pripájaní\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Prihlásenie Hamachi zlyhalo\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Aktualizacia\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Pripojený\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Člen bol pridaný\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} bol pridaný do siete {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} sa pripojil do siete {1} a {2} ďalší siete\"\nmsgstr[1] \"{0} sa pripojil do siete {1} a {2} ďalších sietí\"\nmsgstr[2] \"{0} sa pripojil do siete {1} a {2} ďalších sietí\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Člen odišiel\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} opustil sieť {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} opustil sieť {1} a {2} ďalší sieť\"\nmsgstr[1] \"{0} opustil sieť {1} a {2} ďalšie siete\"\nmsgstr[2] \"{0} opustil sieť {1} a {2} ďalších sietí\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Člen online\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} je online v sieti {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} je online v sieti {1} a {2} ďalšej sieti\"\nmsgstr[1] \"{0} je online v sieti {1} a {2} ďalších sietí\"\nmsgstr[2] \"{0} je online v sieti {1} a {2} ďalších sietí\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Člen offline\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} je offline zo siete {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} je offline v sieti {1} a {2} ďalšej sieti\"\nmsgstr[1] \"{0} je offline v sieti {1} a {2} ďalších sietí\"\nmsgstr[2] \"{0} je offline v sieti {1} a {2} ďalších sietí\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Upraviť príkaz\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Pridať príkaz\"\n\n#: src/dialogs/attach.vala:55\n#, fuzzy\nmsgid \"Attach request sent\"\nmsgstr \"Žiadosť o pripojenie zaslaná\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Účet sa nenašiel\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Vstúpiť do siete\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Vytvoriť sieť\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"Vstú_piť\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"V_ytvoriť\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Žiadosť o pripojenie zaslaná\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Sieť nebola nájdená\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Neplatné heslo\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Sieť je plná\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Sieť je zamknutá\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Sieť je už pripojená\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"ID siete je už používané\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Neznámy\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonymný\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\n#, fuzzy\nmsgid \"Password changed\"\nmsgstr \"Heslo\"\n\n#: src/hamachi.vala:723\n#, fuzzy\nmsgid \"Saving backup…\"\nmsgstr \"_Uložiť zálohu…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:754\n#, fuzzy\nmsgid \"Restoring backup…\"\nmsgstr \"_Obnoviť zo zálohy…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Archív neobsahuje očakávané súbory\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Pripája sa\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Odpojený\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Zobraziť Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"O_dpojiť\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"Prip_ojiť\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Naozaj chcete vyhodiť člena „{0}“ zo siete „{1}“?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"Ak potvrdíte, môžu sa vylúčenie členi neskôr opäť pripojiť.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Vy\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Naozaj chcete opustiť sieť „{0}“?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Ak potvrdíte, môžete sa opäť pripojiť kedykoľvek neskôr.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Naozaj chcete zmazať sieť „{0}“?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Ak sieť odstránite, bude nenávratne stratená.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Všetky podporované archívy\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Uložiť zálohu\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Obnoviť zo zálohy\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"O_bnoviť\"\n\n#: src/preferences.vala:372\n#, fuzzy\nmsgid \"Never\"\nmsgstr \"Vrá_tiť\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\nmsgstr[2] \"\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Nedostupný\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"čakajúce\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} online, {1} celkovo\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Offline\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Online\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Postúpené\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Nedostupný\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Čaká na schválenie\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Neznáma chyba\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Chyba v protokole\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Konflikt adries\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Priamy\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"Zdeněk Kopš https://launchpad.net/~zdenekkops\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Obnova pripojenie za {0} sekundu\"\nmsgstr[1] \"Obnova pripojenie za {0} sekundy\"\nmsgstr[2] \"Obnova pripojenie za {0} sekúnd\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi nie je nainštalované\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Verze Hamachi %s je zastaraná\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n"
  },
  {
    "path": "po/sv.po",
    "content": "# Swedish translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2025-10-23 10:52+0000\\n\"\n\"Last-Translator: Daniel Nylander <daniel@danielnylander.se>\\n\"\n\"Language-Team: Swedish <https://hosted.weblate.org/projects/haguichi/\"\n\"haguichi/sv/>\\n\"\n\"Language: sv\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.14.1-dev\\n\"\n\"X-Launchpad-Export-Date: 2022-08-28 16:08+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi nätverkshanterare\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Hantera dina Hamachi-nätverk\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\"LogMeIn Hamachi;VPN;LAN;Nätverk;Internet;P2P;Peer;Klient;grafiskt \"\n\"gränssnitt;Frontend;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi gör det enkelt att ansluta sig till, skapa och administrera Hamachi-\"\n\"nätverk.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Funktioner:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Sökbar, sorterbar och utfällbar nätverkslista\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Sidorad för enkel åtkomst till information och åtgärder\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Indikatorstöd för snabb åtkomst till primära åtgärder\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Skrivbordsmeddelanden för att hålla dig uppdaterad om nätverkshändelser\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Kommandon som kan anpassas helt och hållet\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Säkerhetskopiering och återställning av din Hamachi-konfigurationsmapp\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Observera: Kräver installation av Hamachi på systemet för att kunna \"\n\"användas.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Visa din nätverkslista och klientinformation\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Visa valda medlemsuppgifter\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Visa valda nätverksdetaljer\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Sök i din nätverkslista\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Gå med i eller skapa nätverk\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etikett\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4-kommando\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6-kommando\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Prioritet\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Spara\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Koppla till konto\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Konto\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Inkludera alla nätverk som skapats av denna klient\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"K_oppla\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Byt åtkomst\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Låst\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Acceptera inte nya nätverksmedlemmar\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Godkännande\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Automatiskt\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Manuellt\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"Ä_ndra\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Ändra lösenord\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Nytt lösenord\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Nätverks-id\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Lösenord\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Godkänn\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"Avv_isa\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Kopiera IPv_4-adress\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Kopiera IPv_6-adress\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Kopiera klient-id\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Kasta ut\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Detaljer\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Gå med i nätverk…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Skapa nätverk…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Koppla _upp\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Koppla _ner\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Lämna\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Radera\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Byt å_tkomst…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Ändra _lösenord…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Kopiera nätverks-id\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Allmänt\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Konfiguration\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Säkerhetskopiera\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Öppna mapp\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Smeknamn\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Protokoll\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Både IPv4 och IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Endast IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Endast IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Beteende\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Uppdateringsintervall för nätverkslista\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"_Anslut automatiskt vid uppstart\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Återanslut automatiskt när anslutningen avbrutits\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Koppla från vid stängning\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Kommandon\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Skrivbord\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Utseende\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Stil\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Följ systemet\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Ljust\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Mörkt\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Visa _indikator\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Notifieringar\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Visa notifiering när anslutningen för_loras\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Visa notifiering när en användare _går in\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Visa notifiering när en användare _lämnar\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Visa notifiering när en användare _ansluter\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Visa notifiering när en användare kopplar _från\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Spara en säkerhetskopia…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Åt_erställ från säkerhetskopia…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Visa hjälp\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Visa klientinformation\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Öppna meny\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Inställningar\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Tangentbordsgenvägar\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Avsluta\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Anslutning\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Anslut\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Koppla från\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Nätverkslista\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Gå med i ett nätverk\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Skapa ett nätverk\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Uppdatera\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Sök\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Visa/dölj frånkopplade medlemmar\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Fäll ut alla nätverk\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Fäll in alla nätverk\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Kör kommando\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Information\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Koppla\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Avbryt\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"Klient-id\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4-adress\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6-adress\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi version\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Status\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Lämna nätverk\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Ta bort nätverk\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Ägare\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Medlemmar\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapacitet\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tunnel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Kommandovariabler\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adress\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Terminalemulator\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Filhanterare\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Fjärrskrivbordsvisare\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"Åte_rställ till standard\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Lägg till kommando\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Bläddra i utdelade mappar\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Visa fjärrskrivbord\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Pinga\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Standardåtgärd\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Alternativ\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Redigera…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Duplicera…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Flytta _uppåt\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Flytta _nedåt\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"_Ställ in som standardåtgärd\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Ta bort\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopiera\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Initierar\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Huvudmeny\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Sök efter nätverk och medlemmar\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Lägg till nätverk\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi förlorade anslutningen\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Avbryt\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Du är ansluten!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Använd + knappen för att lägga till ett nätverk\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Inga resultat hittades\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Prova en annan sökning\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Hämta ner Hamachi och följ installationsinstruktionerna\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Hämta\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi är inte konfiguerat\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Du behöver konfiguera Hamachi innan du kan ansluta\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"K_onfigurera\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Information\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Sortera efter _namn\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Sortera efter _status\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Frånkopplade användare\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Inställningar\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Tangentbordsgenvägar\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Hjälp\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Om Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"A_vsluta\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Återanslut\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Ingen internetanslutning\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Loggar in\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Fel vid uppkoppling\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Fel vid Hamachi-inloggning\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Uppdaterar\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Ansluten\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Medlem gick in\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} har gått in i nätverket {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} gick in i nätverket {1} och {2} annat nätverk\"\nmsgstr[1] \"{0} gick in i nätverket {1} och {2} andra nätverk\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Medlem lämnade\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} lämnade nätverket {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} lämnade nätverket {1} och {2} annat nätverk\"\nmsgstr[1] \"{0} lämnade nätverket {1} och {2} andra nätverk\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Medlem ansluten\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} anslöt till nätverket {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} anslöt till nätverket {1} och {2} annat nätverk\"\nmsgstr[1] \"{0} anslöt till nätverket {1} och {2} andra nätverk\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Medlem frånkopplad\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} kopplade från nätverket {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} kopplade från nätverket {1} och {2} annat nätverk\"\nmsgstr[1] \"{0} kopplade från nätverket {1} och {2} andra nätverk\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Redigera kommando\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Lägg till kommando\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Ansökningsbegäran skickad\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Kontot hittades inte\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Gå med i nätverk\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Skapa nätverk\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Gå med i\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"S_kapa\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Begäran att gå med skickad\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Nätverket hittades inte\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Ogiltigt lösenord\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Nätverket är fullt\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Nätverket är låst\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Har redan gått med i nätverket\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Nätverks-id används redan\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Okänt\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonym\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Lösenord ändrades\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Sparar säkerhetskopia…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Säkerhetskopia sparad\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Misslyckades med att spara säkerhetskopia\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Återställer säkerhetskopia…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Säkerhetskopia återställd\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Misslyckades med att återställa säkerhetskopia\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Arkivet innehåller inte de filer som förväntades\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Ansluter\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Frånkopplad\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Visa Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Koppla från\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"A_nslut\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Vill du verkligen kasta ut medlemmen “{0}” från nätverket “{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"Om godkänd så kan utslängda medlemmar gå med i nätverket senare.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Du\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Vill du verkligen lämna nätverket “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Om godkänd så kan du gå med i nätverket igen senare.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Vill du verkligen ta bort nätverket “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Om du tar bort ett nätverk så är det permanent borta.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Finns inte\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Alla arkiv som stöds\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Spara en säkerhetskopia\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Återställ från säkerhetskopia\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"Åte_rställ\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Aldrig\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S sekund\"\nmsgstr[1] \"%S sekunder\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S minut\"\nmsgstr[1] \"%S minuter\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Ej tillgänglig\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"väntar\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Inte bifogad\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} anslutna, {1} totalt\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Frånkopplad\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Ansluten\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Omdirigerad\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Kan inte nås\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Väntar på godkännande\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Okänt fel\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Protokollet stämmer inte\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Konflikt i adress\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Direkt\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Återställ standardkommandon?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Alla anpassningar kommer att förloras.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Tog bort kommandot \\\"%s\\\"\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"Å_ngra\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Konfigurerar\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Daniel Holm https://launchpad.net/~danielholm\\n\"\n\"Daniel Nylander https://launchpad.net/~yeager\\n\"\n\"David Bengtsson https://launchpad.net/~jstfaking\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Kopierades till urklipp\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Återansluter om {0} sekund\"\nmsgstr[1] \"Återansluter om {0} sekunder\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi är inte installerat\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi version %s är för gammal\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi fortsätter att köras när fönstret stängs så att det kan övervaka \"\n\"anslutningen och skicka aviseringar.\"\n"
  },
  {
    "path": "po/tr.po",
    "content": "# Turkish translation for haguichi\n# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2026-02-22 21:44+0000\\n\"\n\"Last-Translator: Sabri Ünal <yakushabb@gmail.com>\\n\"\n\"Language-Team: Turkish <https://hosted.weblate.org/projects/haguichi/\"\n\"haguichi/tr/>\\n\"\n\"Language: tr\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=2; plural=n != 1;\\n\"\n\"X-Generator: Weblate 5.16.1-dev\\n\"\n\"X-Launchpad-Export-Date: 2018-03-07 18:20+0000\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi Ağ Yöneticisi\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Hamachi ağlarınızı yönetin\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"\"\n\"LogMeIn \"\n\"Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;Ağ;Sanal Özel \"\n\"Ağ;İnternet;Eş;İStemci;Arayüz;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi, Hamachi ağlarına katılmayı, oluşturmayı ve yönetmeyi kolaylaştırır.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Özellikler:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Aranabilir, sıralanabilir ve daraltılabilir ağ listesi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Ayrıntılara ve eylemlere kolay erişim için kenar çubuğu\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Birincil eylemlere hızlı erişim için gösterge desteği\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Ağ olaylarından haberdar olmak için masaüstü bildirimleri\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Tamamen özelleştirilebilen komutlar\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Hamachi yapılandırma klasörünüzün yedeklenmesi ve geri yüklenmesi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Lütfen dikkat: Kullanmak için sisteme Hamachiʼnin kurulması gerekir.</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Ağ listenizi ve istemci bilgilerinizi görüntüleyin\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Seçilen üye ayrıntılarını görüntüleyin\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Seçilen ağ ayrıntılarını görüntüleyin\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Ağ listenizi arayın\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Ağlara katılın ya da ağ oluşturun\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Etiket\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 Komutu\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 Komutu\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Öncelik\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"_Kaydet\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Hesaba Ekle\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Hesap\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Bu istemci tarafından oluşturulan tüm bağlantıları kapsa\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Ekle\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Erişimi Değiştir\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Kilitli\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Yeni ağ üyelerii kabul etme\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Onay\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Kendiliğinden\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Elle\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"D_eğiştir\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Parolayı Değiştir\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Yeni Parola\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"Ağ Kimliği\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Parola\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Onayla\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Reddet\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"IPv_4 Adresini Kopyala\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"IPv_6 Adresini Kopyala\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Adres Kimliğini Kopyala\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_At\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Ayrıntılar\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Ağa Katıl…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"Ağ _Oluştur…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"Ç_evrim İçi Ol\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"Çevrim _Dışı Ol\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Ayrıl\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"_Sil\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"_Erişimi Değiştir…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Parolayı _Değiştir…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Ağ Kimliğini Kopyala\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Genel\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Yapılandırma\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Yedekle\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Klasör Aç\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Takma ad\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Bağlantı Kuralı\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"IPv4 ve IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"Sadece IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"Sadece IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"İşleyiş\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Ağ listesi güncelleme aralığı\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"Başlangıçta _kendiliğinden bağlan\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"_Bağlantı koptuğunda kendiliğinden yeniden bağlan\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Çıkışta bağlantıyı kes\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Komutlar\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Masaüstü\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Gürünüm\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Biçem\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Sistemi İzle\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Açık\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Koyu\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"_Göstergeyi göster\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Bildirimler\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Bağ_lantı koptuğunda bildir\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Üyeler _bağlandığında bildir\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Üyeler _ayrıldığında bildir\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Üyeler ç_evrim içi olduğunda bildir\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Üyeler çe_vrim dışı olduğunda bildir\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Yedek Kaydet…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"Yedekten Ge_ri Yükle…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Yardımı göster\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"İstemci bilgisini göster\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Menüyü aç\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Tercihler\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Klavye kısayolları\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Çık\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"Bağlantı\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Bağlan\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Bağlantıyı Kes\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Ağ Listesi\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Ağa katıl\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Ağ oluştur\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Yenile\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Ara\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Çevrim dışı üyeleri göster/gizle\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Tüm ağları genişlet\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Tüm ağları daralt\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Komut çalıştır\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Bilgi\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Ekle\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"İptal\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"İstemci Kimliği\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"IPv4 Adresi\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"IPv6 Adresi\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Hamachi Sürümü\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Durum\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Ağdan Ayrıl\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Ağı Sil\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Ağ Sahibi\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Üyeler\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Kapasite\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Tünel\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Komut Değişkenleri\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Adres\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Uçbirim Öykünücü\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Dosya Yöneticisi\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Uzak Masaüstü Görüntüleyici\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"Ö_ntanımlıyı Geri Yükle\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"Komut _Ekle\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Paylaşımlara Göz At\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Uzak Masaüstünü Gör\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Ping\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Öntanımlı Eyle\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Seçenekler\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Düzenle…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"Ç_oğalt…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"_Yukarı Taşı\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"_Aşağı Taşı\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"Ö_ntanımlı Eylem Olarak Ayarla\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Kaldır\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Kopyala\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Başlatılıyor\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Ana Menü\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Ağları ve üyeleri ara\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Ağ Ekle\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi Bağlantısı Koptu\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"İ_ptal\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Bağlandınız!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Ağ eklemek için + düğmesini kullanın\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Hiçbir Sonuç Bulunamadı\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Başka arama dene\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Lütfen Hamachiʼyi indirin ve kurulum yönergelerini takip edin\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"İ_ndir\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi Yapılandırılmamış\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Bağlanmadan önce Hamachiʼyi yapılandırmalısınız\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"_Yapılandır\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Bilgi\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"_Ada Göre Sırala\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"_Duruma Göre Sırala\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Çevrim Dışı Üyeler\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"_Tercihler\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Klavye Kısayolları\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Yardım\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"Haguichi _Hakkında\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"Çı_k\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Yeniden Bağlan\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"İnternet bağlantısı yok\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Oturum açılıyor\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Bağlanırken hata oluştu\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Hamachi oturumu açılamadı\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Güncelleniyor\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"Bağlandı\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Üye Katıldı\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0}, {1} ağına katıldı\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0}, {1} ve {2} başka ağa katıldı\"\nmsgstr[1] \"{0}, {1} ve {2} başka ağlara katıldı\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Üye Ayrıldı\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0}, {1} ağından ayrıldı\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0}, {1} ve {2} başka ağdan ayrıldı\"\nmsgstr[1] \"{0}, {1} ve {2} başka ağlardan ayrıldı\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Üye Çevrim İçi\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0}, {1} ağında çevrim içi oldu\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0}, {1} ve {2} başka ağda çevrim içi oldu\"\nmsgstr[1] \"{0}, {1} ve {2} başka ağlarda çevrim içi oldu\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Üye Çevrim Dışı\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0}, {1} ağında çevrim dışı oldu\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0}, {1} ve {2} başka ağda çevrim dışı oldu\"\nmsgstr[1] \"{0}, {1} ve {2} başka ağlarda çevrim dışı oldu\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Komutu Düzenle\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Komut Ekle\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Ek isteği gönderildi\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Hesap bulunamadı\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Ağa Katıl\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Ağ Oluştur\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"_Katıl\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"O_luştur\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Katılma isteği gönderildi\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Ağ bulunamadı\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Geçersiz parola\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Ağ dolu\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Ağ kilitli\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Zaten bu ağa katılındı\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Ağ kimliği zaten alınmış\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Bilinmiyor\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Anonim\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Parola değişti\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Yedek kaydediliyor…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Yedek kaydedildi\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Yedek kaydedilemedi\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Yedek geri yükleniyor…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Yedek geri yüklendi\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Yedek geri yüklenemedi\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Arşiv beklenen dosyaları içermiyor\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"Bağlanıyor\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Bağlantı Kesildi\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"Haguichiʼyi _Göster\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Bağlantıyı Kes\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"B_ağlan\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"”{0}” üyesini “{1}” ağından atmak istediğinize emin misiniz?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"\"\n\"Kabul edilirlerse, atılan üyeler ağa başka bir zamanda tekrar \"\n\"bağlanabilirler.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Siz\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"“{0}” ağından ayrılmak istediğinize emin misiniz?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Kabul edilirseniz, ağa başka bir zamanda tekrar bağlanabilirsiniz.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"”{0}” ağını silmek istedeğinizden emin misiniz?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Eğer bir ağı silerseniz tamamen kaybedilir.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Mevcut değil\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Tüm desteklenen arşivler\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Yedek Al\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Yedekten Geri Yükle\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"Ge_ri Yükle\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Asla\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S saniye\"\nmsgstr[1] \"%S saniye\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S dakika\"\nmsgstr[1] \"%S dakika\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Kullanılamıyor\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"beklemede\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Eklenmemiş\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} çevrim içi, {1} toplam\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Çevrim dışı\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"Çevirim içi\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Aktarılan\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Erişilemiyor\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"Onay bekliyor\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Bilinmeyen hata\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"İletişim kuralı uyumsuz\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Çakışan adres\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Doğrudan\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Öntanımlı komutları geri yüklemek ister misiniz?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Tüm özelleştirmeler kaybolacak.\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"“%s” komutu kaldırıldı\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Geri Al\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Yapılandırılıyor\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Aytunç Yeni https://launchpad.net/~aytuncyeni\\n\"\n\"Kudret Emre https://launchpad.net/~kudretemre\\n\"\n\"Sabri Ünal <yakushabb@gmail.com>\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Panoya kopyalandı\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"{0} saniye içinde yeniden bağlanacak\"\nmsgstr[1] \"{0} saniye içinde yeniden bağlanacak\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi Kurulmamış\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Hamachi Sürümü %s Eski\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi, bağlantıyı izleyebilmek ve bildirimler gönderebilmek için \"\n\"penceresi kapatıldığında da çalışmaya devam edecek.\"\n"
  },
  {
    "path": "po/uk.po",
    "content": "# Ukrainian translation for haguichi\n# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012\n# This file is distributed under the same license as the haguichi package.\n# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.\n#\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: haguichi\\n\"\n\"Report-Msgid-Bugs-To: \\n\"\n\"POT-Creation-Date: 2025-10-12 18:53+0200\\n\"\n\"PO-Revision-Date: 2024-06-15 18:01+0000\\n\"\n\"Last-Translator: Fedik <Unknown>\\n\"\n\"Language-Team: Ukrainian <uk@li.org>\\n\"\n\"Language: uk\\n\"\n\"MIME-Version: 1.0\\n\"\n\"Content-Type: text/plain; charset=UTF-8\\n\"\n\"Content-Transfer-Encoding: 8bit\\n\"\n\"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && \"\n\"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\\n\"\n\"X-Launchpad-Export-Date: 2024-06-15 19:40+0000\\n\"\n\"X-Generator: Launchpad (build bbfa2351d9d6a9ddfe262109428f7bf5516e65d1)\\n\"\n\n#. Name used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:4\nmsgid \"Haguichi\"\nmsgstr \"Haguichi\"\n\n#. Generic name used for display in some application launchers like Kickoff in KDE Plasma.\n#: data/com.github.ztefn.haguichi.desktop.in.in:6\nmsgid \"Hamachi Network Manager\"\nmsgstr \"Hamachi менеджер мереж\"\n\n#. Description used for display in application launchers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:10\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:7\nmsgid \"Manage your Hamachi networks\"\nmsgstr \"Керування мережами Hamachi\"\n\n#. Keywords used for search in application launchers and software centers.\n#: data/com.github.ztefn.haguichi.desktop.in.in:14\nmsgid \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\nmsgstr \"LogMeIn Hamachi;VPN;LAN;Network;Internet;P2P;Peer;Client;GUI;Frontend;\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:9\nmsgid \"\"\n\"Haguichi makes it a breeze to join, create and administer Hamachi networks.\"\nmsgstr \"\"\n\"Haguichi допомагає з легкістю приєднуватись, створювати, та адмініструвати \"\n\"мережі Hamachi.\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:10\nmsgid \"Features:\"\nmsgstr \"Можливості:\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:12\nmsgid \"Searchable, sortable and collapsible network list\"\nmsgstr \"Список мереж з можливістю пошуку, сортування, складання\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:13\nmsgid \"Sidebar for easy access to details and actions\"\nmsgstr \"Бічна панель для швидкого доступу до деталей та дій\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:14\nmsgid \"Indicator support for quick access to primary actions\"\nmsgstr \"Підтримка індикаторів для швидкого доступу до основних дій\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:15\nmsgid \"Desktop notifications to stay up to date of network events\"\nmsgstr \"Сповіщення на робочому столі, щоб бути в курсі подій у мережі\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:16\nmsgid \"Commands that can be completely customized\"\nmsgstr \"Команди які можна налаштовувати під себе\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:17\nmsgid \"Backup and restore of your Hamachi configuration folder\"\nmsgstr \"Резервне копіювання та відновлення каталогу з налаштуваннями Hamachi\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:19\nmsgid \"\"\n\"<em>Please note: Requires installation of Hamachi on the system in order to \"\n\"use.</em>\"\nmsgstr \"\"\n\"<em>Зверніть увагу: Для використання, Hamachi має бути встановленно</em>\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:23\nmsgid \"View your network list and client information\"\nmsgstr \"Переглянути список мереж та інформацію про клієнта\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:27\nmsgid \"View selected member details\"\nmsgstr \"Переглянути інформацію про обраного учасника\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:31\nmsgid \"View selected network details\"\nmsgstr \"Переглянути інформацію про обрану мережу\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:35\nmsgid \"Search your network list\"\nmsgstr \"Пошук у списку мереж\"\n\n#: data/com.github.ztefn.haguichi.metainfo.xml.in.in:39\nmsgid \"Join or create networks\"\nmsgstr \"Приєднатися або створити мережу\"\n\n#: data/ui/dialogs/add-edit-command.ui:30\nmsgid \"Label\"\nmsgstr \"Мітка\"\n\n#: data/ui/dialogs/add-edit-command.ui:37\nmsgid \"IPv4 Command\"\nmsgstr \"IPv4 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:44\nmsgid \"IPv6 Command\"\nmsgstr \"IPv6 команда\"\n\n#: data/ui/dialogs/add-edit-command.ui:51\nmsgid \"Priority\"\nmsgstr \"Пріоритет\"\n\n#: data/ui/dialogs/add-edit-command.ui:58\nmsgid \"_Save\"\nmsgstr \"З_берегти\"\n\n#: data/ui/dialogs/attach.ui:6\nmsgid \"Attach to Account\"\nmsgstr \"Приєднати до облікового запису\"\n\n#: data/ui/dialogs/attach.ui:31 data/ui/sidebar.ui:23 src/sidebar.vala:192\nmsgid \"Account\"\nmsgstr \"Обліковий запис\"\n\n#: data/ui/dialogs/attach.ui:38\nmsgid \"Include all networks created by this client\"\nmsgstr \"Включно всі мережі створені цим клієнтом\"\n\n#: data/ui/dialogs/attach.ui:61\nmsgid \"_Attach\"\nmsgstr \"_Приєднати\"\n\n#: data/ui/dialogs/change-access.ui:6 data/ui/sidebar.ui:135\nmsgid \"Change Access\"\nmsgstr \"Зімнити доступ\"\n\n#: data/ui/dialogs/change-access.ui:31\nmsgid \"Locked\"\nmsgstr \"Блоковано\"\n\n#: data/ui/dialogs/change-access.ui:32\nmsgid \"Do not accept new network members\"\nmsgstr \"Не приймати нових учасників мережі\"\n\n#: data/ui/dialogs/change-access.ui:38\nmsgid \"Approval\"\nmsgstr \"Підтверджено\"\n\n#: data/ui/dialogs/change-access.ui:42\nmsgid \"Automatically\"\nmsgstr \"Автоматично\"\n\n#: data/ui/dialogs/change-access.ui:43\nmsgid \"Manually\"\nmsgstr \"Власноруч\"\n\n#: data/ui/dialogs/change-access.ui:53 data/ui/dialogs/change-password.ui:39\nmsgid \"C_hange\"\nmsgstr \"_Змінити\"\n\n#: data/ui/dialogs/change-password.ui:6 data/ui/sidebar.ui:119\nmsgid \"Change Password\"\nmsgstr \"Змінити пароль\"\n\n#: data/ui/dialogs/change-password.ui:31\nmsgid \"New Password\"\nmsgstr \"Новий пароль\"\n\n#: data/ui/dialogs/join-create-network.ui:30 data/ui/sidebar.ui:110\nmsgid \"Network ID\"\nmsgstr \"ІД мережі\"\n\n#: data/ui/dialogs/join-create-network.ui:37\nmsgid \"Password\"\nmsgstr \"Пароль\"\n\n#: data/ui/menus/member-menu.ui:10 data/ui/sidebar.ui:229 src/bubble.vala:58\nmsgid \"_Approve\"\nmsgstr \"_Підтвердити\"\n\n#: data/ui/menus/member-menu.ui:15 data/ui/sidebar.ui:242 src/bubble.vala:59\nmsgid \"_Reject\"\nmsgstr \"_Відхилити\"\n\n#: data/ui/menus/member-menu.ui:22\nmsgid \"Copy IPv_4 Address\"\nmsgstr \"Копіювати IPv_4 адресу\"\n\n#: data/ui/menus/member-menu.ui:27\nmsgid \"Copy IPv_6 Address\"\nmsgstr \"Копіювати IPv_6 адресу\"\n\n#: data/ui/menus/member-menu.ui:32\nmsgid \"_Copy Client ID\"\nmsgstr \"_Копіювати ІД клієнта\"\n\n#. This action removes the selected member from the network.\n#: data/ui/menus/member-menu.ui:38 data/ui/sidebar.ui:255 src/member.vala:234\nmsgid \"_Evict\"\nmsgstr \"_Виселити\"\n\n#: data/ui/menus/member-menu.ui:46 data/ui/menus/network-menu.ui:54\nmsgid \"_Details\"\nmsgstr \"_Подробиці\"\n\n#: data/ui/menus/network-list-menu.ui:10 data/ui/window.ui:570\n#: src/indicator.vala:112\nmsgid \"_Join Network…\"\nmsgstr \"_Приєднати Мережу…\"\n\n#: data/ui/menus/network-list-menu.ui:14 data/ui/window.ui:574\n#: src/indicator.vala:117\nmsgid \"_Create Network…\"\nmsgstr \"_Створити Мережу…\"\n\n#: data/ui/menus/network-menu.ui:10 data/ui/sidebar.ui:153\nmsgid \"_Go Online\"\nmsgstr \"_Статус в мережі\"\n\n#: data/ui/menus/network-menu.ui:16 data/ui/sidebar.ui:166\nmsgid \"_Go Offline\"\nmsgstr \"_Статус поза мережею\"\n\n#: data/ui/menus/network-menu.ui:22 src/network.vala:348\nmsgid \"_Leave\"\nmsgstr \"_Залишити\"\n\n#: data/ui/menus/network-menu.ui:28 src/network.vala:377\nmsgid \"_Delete\"\nmsgstr \"В_идалити\"\n\n#: data/ui/menus/network-menu.ui:36\nmsgid \"Change _Access…\"\nmsgstr \"Зімнити _доступ…\"\n\n#: data/ui/menus/network-menu.ui:41\nmsgid \"Change _Password…\"\nmsgstr \"Змінити _Пароль…\"\n\n#: data/ui/menus/network-menu.ui:48\nmsgid \"_Copy Network ID\"\nmsgstr \"_Копіювати ІД Мережі\"\n\n#: data/ui/preferences.ui:7 data/ui/shortcuts-dialog.ui:6\n#: data/ui/shortcuts-window.ui:10\nmsgid \"General\"\nmsgstr \"Загальне\"\n\n#: data/ui/preferences.ui:13\nmsgid \"Configuration\"\nmsgstr \"Налаштування\"\n\n#: data/ui/preferences.ui:20\nmsgid \"Backup\"\nmsgstr \"Резервування\"\n\n#: data/ui/preferences.ui:31\nmsgid \"Open Folder\"\nmsgstr \"Відкрити теку\"\n\n#: data/ui/preferences.ui:45 data/ui/widgets/command-entry-row.ui:42\nmsgid \"Nickname\"\nmsgstr \"Псевдонім\"\n\n#: data/ui/preferences.ui:52\nmsgid \"_Protocol\"\nmsgstr \"_Протокол\"\n\n#: data/ui/preferences.ui:57\nmsgid \"Both IPv4 and IPv6\"\nmsgstr \"Обидві, IPv4 та IPv6\"\n\n#: data/ui/preferences.ui:58\nmsgid \"IPv4 only\"\nmsgstr \"лише IPv4\"\n\n#: data/ui/preferences.ui:59\nmsgid \"IPv6 only\"\nmsgstr \"лише IPv6\"\n\n#: data/ui/preferences.ui:69\nmsgid \"Behavior\"\nmsgstr \"Поведінка\"\n\n#: data/ui/preferences.ui:72\nmsgid \"_Network list update interval\"\nmsgstr \"_Інтервал оновлення списку мереж\"\n\n#: data/ui/preferences.ui:78\nmsgid \"_Connect automatically on startup\"\nmsgstr \"П_риєднуватись автоматично, при старті\"\n\n#: data/ui/preferences.ui:84\nmsgid \"_Reconnect automatically when the connection is lost\"\nmsgstr \"П_ере-підключатись автоматично, коли з'єднання втрачено\"\n\n#: data/ui/preferences.ui:90\nmsgid \"_Disconnect on quit\"\nmsgstr \"_Відключатись при виході\"\n\n#: data/ui/preferences.ui:100 data/ui/shortcuts-dialog.ui:111\n#: data/ui/sidebar.ui:192\nmsgid \"Commands\"\nmsgstr \"Команди\"\n\n#. In this context meaning \"work environment\".\n#: data/ui/preferences.ui:108\nmsgid \"Desktop\"\nmsgstr \"Стільниця\"\n\n#: data/ui/preferences.ui:111\nmsgid \"Appearance\"\nmsgstr \"Вигляд\"\n\n#: data/ui/preferences.ui:114\nmsgid \"_Style\"\nmsgstr \"_Стиль\"\n\n#: data/ui/preferences.ui:131\nmsgid \"Follow System\"\nmsgstr \"Так само як в системі\"\n\n#: data/ui/preferences.ui:142\nmsgid \"Light\"\nmsgstr \"Світлий\"\n\n#: data/ui/preferences.ui:154\nmsgid \"Dark\"\nmsgstr \"Темний\"\n\n#: data/ui/preferences.ui:164\nmsgid \"Show _indicator\"\nmsgstr \"Показати _індикатор\"\n\n#: data/ui/preferences.ui:173\nmsgid \"Notifications\"\nmsgstr \"Сповіщення\"\n\n#: data/ui/preferences.ui:176\nmsgid \"Display notification when the connection is l_ost\"\nmsgstr \"Показувати повідомлення про втрату _з'єднання\"\n\n#: data/ui/preferences.ui:182\nmsgid \"Display notification when a member _joins\"\nmsgstr \"Показувати повідомлення коли учасник _приєднується\"\n\n#: data/ui/preferences.ui:188\nmsgid \"Display notification when a member _leaves\"\nmsgstr \"Показувати повідомлення коли учасник _від'єднується\"\n\n#: data/ui/preferences.ui:194\nmsgid \"Display notification when a member comes o_nline\"\nmsgstr \"Показувати повідомлення коли користувач стає _доступним\"\n\n#: data/ui/preferences.ui:200\nmsgid \"Display notification when a member goes o_ffline\"\nmsgstr \"Показувати повідомлення коли користувач стає _недоступним\"\n\n#: data/ui/preferences.ui:212\nmsgid \"_Save a Backup…\"\nmsgstr \"_Зберегти резервну копію…\"\n\n#: data/ui/preferences.ui:216\nmsgid \"_Restore from Backup…\"\nmsgstr \"_Відновити з резервної копії…\"\n\n#: data/ui/shortcuts-dialog.ui:10 data/ui/shortcuts-window.ui:14\nmsgid \"Show help\"\nmsgstr \"Показати довідку\"\n\n#: data/ui/shortcuts-dialog.ui:16 data/ui/shortcuts-window.ui:20\nmsgid \"Show client information\"\nmsgstr \"Показати дані клієнта\"\n\n#: data/ui/shortcuts-dialog.ui:22 data/ui/shortcuts-window.ui:26\nmsgid \"Open menu\"\nmsgstr \"Відкрити меню\"\n\n#: data/ui/shortcuts-dialog.ui:28 data/ui/shortcuts-window.ui:44\nmsgid \"Preferences\"\nmsgstr \"Налаштування\"\n\n#: data/ui/shortcuts-dialog.ui:34 data/ui/shortcuts-window.ui:50\nmsgid \"Keyboard shortcuts\"\nmsgstr \"Клавіатурні скорочення\"\n\n#: data/ui/shortcuts-dialog.ui:40 data/ui/shortcuts-window.ui:56\nmsgid \"Quit\"\nmsgstr \"Вийти\"\n\n#: data/ui/shortcuts-dialog.ui:47 data/ui/sidebar.ui:223\nmsgid \"Connection\"\nmsgstr \"З'єднання\"\n\n#: data/ui/shortcuts-dialog.ui:51 data/ui/shortcuts-window.ui:32\n#: data/ui/window.ui:212\nmsgid \"Connect\"\nmsgstr \"Підключити\"\n\n#: data/ui/shortcuts-dialog.ui:57 data/ui/shortcuts-window.ui:38\n#: data/ui/window.ui:226\nmsgid \"Disconnect\"\nmsgstr \"Відключити\"\n\n#: data/ui/shortcuts-dialog.ui:64 data/ui/shortcuts-window.ui:63\n#: data/ui/window.ui:496\nmsgid \"Network List\"\nmsgstr \"Список мереж\"\n\n#: data/ui/shortcuts-dialog.ui:68 data/ui/shortcuts-window.ui:67\nmsgid \"Join a network\"\nmsgstr \"Приєднатись до мережі\"\n\n#: data/ui/shortcuts-dialog.ui:74 data/ui/shortcuts-window.ui:73\nmsgid \"Create a network\"\nmsgstr \"Створити мережу\"\n\n#: data/ui/shortcuts-dialog.ui:80 data/ui/shortcuts-window.ui:79\n#: data/ui/window.ui:202 data/ui/window.ui:287\nmsgid \"Refresh\"\nmsgstr \"Оновити\"\n\n#: data/ui/shortcuts-dialog.ui:86 data/ui/shortcuts-window.ui:85\n#: data/ui/window.ui:237\nmsgid \"Search\"\nmsgstr \"Пошук\"\n\n#: data/ui/shortcuts-dialog.ui:92 data/ui/shortcuts-window.ui:91\nmsgid \"Show/hide offline members\"\nmsgstr \"Показати/приховати неактивних користувачів\"\n\n#: data/ui/shortcuts-dialog.ui:98 data/ui/shortcuts-window.ui:97\nmsgid \"Expand all networks\"\nmsgstr \"Розгорнути всі мережі\"\n\n#: data/ui/shortcuts-dialog.ui:104 data/ui/shortcuts-window.ui:103\nmsgid \"Collapse all networks\"\nmsgstr \"Згорнути всі мережі\"\n\n#: data/ui/shortcuts-dialog.ui:115 data/ui/shortcuts-window.ui:109\nmsgid \"Execute command\"\nmsgstr \"Виконати команду\"\n\n#: data/ui/sidebar.ui:19 data/ui/window.ui:487 src/sidebar.vala:272\nmsgid \"Information\"\nmsgstr \"Інформація\"\n\n#: data/ui/sidebar.ui:29\nmsgid \"Attach\"\nmsgstr \"Приєднати\"\n\n#: data/ui/sidebar.ui:41\nmsgid \"Cancel\"\nmsgstr \"Скасувати\"\n\n#: data/ui/sidebar.ui:53 data/ui/sidebar.ui:203\n#: data/ui/widgets/command-entry-row.ui:48\nmsgid \"Client ID\"\nmsgstr \"ІД клієнта\"\n\n#: data/ui/sidebar.ui:58 data/ui/sidebar.ui:208\nmsgid \"IPv4 Address\"\nmsgstr \"Адреса IPv4\"\n\n#: data/ui/sidebar.ui:63 data/ui/sidebar.ui:213\nmsgid \"IPv6 Address\"\nmsgstr \"Адреса IPv6\"\n\n#: data/ui/sidebar.ui:68\nmsgid \"Hamachi Version\"\nmsgstr \"Версія Hamachi\"\n\n#: data/ui/sidebar.ui:82 data/ui/sidebar.ui:187\nmsgid \"Status\"\nmsgstr \"Статус\"\n\n#: data/ui/sidebar.ui:87\nmsgid \"Leave Network\"\nmsgstr \"Покинути мережу\"\n\n#: data/ui/sidebar.ui:98\nmsgid \"Delete Network\"\nmsgstr \"Вилучити мережу\"\n\n#: data/ui/sidebar.ui:115\nmsgid \"Owner\"\nmsgstr \"Власник\"\n\n#: data/ui/sidebar.ui:131\nmsgid \"Members\"\nmsgstr \"Учасники\"\n\n#: data/ui/sidebar.ui:147\nmsgid \"Capacity\"\nmsgstr \"Місткість\"\n\n#: data/ui/sidebar.ui:218\nmsgid \"Tunnel\"\nmsgstr \"Тунель\"\n\n#: data/ui/widgets/command-entry-row.ui:7\n#: data/ui/widgets/command-entry-row.ui:15\nmsgid \"Command Variables\"\nmsgstr \"Змінні для команди\"\n\n#: data/ui/widgets/command-entry-row.ui:36\nmsgid \"Address\"\nmsgstr \"Адреса\"\n\n#: data/ui/widgets/command-entry-row.ui:63\nmsgid \"Terminal Emulator\"\nmsgstr \"Емулятор терміналу\"\n\n#: data/ui/widgets/command-entry-row.ui:69\nmsgid \"File Manager\"\nmsgstr \"Менеджер файлів\"\n\n#: data/ui/widgets/command-entry-row.ui:75\nmsgid \"Remote Desktop Viewer\"\nmsgstr \"Перегляд віддаленого робочого столу\"\n\n#: data/ui/widgets/commands-editor.ui:12\nmsgid \"_Restore Default\"\nmsgstr \"_Відновити типові значення\"\n\n#: data/ui/widgets/commands-editor.ui:35\nmsgid \"_Add Command\"\nmsgstr \"_Додати команду\"\n\n#: data/ui/widgets/commands-editor.ui:56\nmsgid \"_Browse Shares\"\nmsgstr \"_Перегланути спільне\"\n\n#: data/ui/widgets/commands-editor.ui:59\nmsgid \"_View Remote Desktop\"\nmsgstr \"_Перегляд Віддаленої Стільниці\"\n\n#: data/ui/widgets/commands-editor.ui:62\nmsgid \"_Ping\"\nmsgstr \"_Пінг\"\n\n#: data/ui/widgets/commands-editor-row.ui:17\nmsgid \"Default Action\"\nmsgstr \"Типова дія\"\n\n#: data/ui/widgets/commands-editor-row.ui:34\nmsgid \"Options\"\nmsgstr \"Опції\"\n\n#: data/ui/widgets/commands-editor-row.ui:61\nmsgid \"_Edit…\"\nmsgstr \"_Змінити…\"\n\n#: data/ui/widgets/commands-editor-row.ui:65\nmsgid \"Du_plicate…\"\nmsgstr \"_Дублювати…\"\n\n#: data/ui/widgets/commands-editor-row.ui:71\nmsgid \"Move _Up\"\nmsgstr \"Перемістити в_гору\"\n\n#: data/ui/widgets/commands-editor-row.ui:75\nmsgid \"Move _Down\"\nmsgstr \"Перемістити в_низ\"\n\n#: data/ui/widgets/commands-editor-row.ui:81\nmsgid \"_Set As Default Action\"\nmsgstr \"В_становити як типова дія\"\n\n#: data/ui/widgets/commands-editor-row.ui:87\nmsgid \"_Remove\"\nmsgstr \"_Вилучити\"\n\n#: data/ui/widgets/sidebar-row.ui:9\nmsgid \"Copy\"\nmsgstr \"Копіювати\"\n\n#: data/ui/window.ui:195 src/window.vala:542\nmsgid \"Initializing\"\nmsgstr \"Ініціалізація\"\n\n#: data/ui/window.ui:247\nmsgid \"Main Menu\"\nmsgstr \"Головне меню\"\n\n#: data/ui/window.ui:265\nmsgid \"Search networks and members\"\nmsgstr \"Пошук мереж і учасників\"\n\n#: data/ui/window.ui:299\nmsgid \"Add Network\"\nmsgstr \"Додати мережу\"\n\n#: data/ui/window.ui:340 src/controller.vala:711\nmsgid \"Hamachi Lost Connection\"\nmsgstr \"Hamachi втратив підключення\"\n\n#: data/ui/window.ui:347 src/dialogs/confirm.vala:25\nmsgid \"_Cancel\"\nmsgstr \"_Скасувати\"\n\n#: data/ui/window.ui:386\nmsgid \"You Are Connected!\"\nmsgstr \"Ви під’єднані!\"\n\n#: data/ui/window.ui:387\nmsgid \"Use the + button to add a network\"\nmsgstr \"Використовуйте кнопку +, щоб додати мережу\"\n\n#: data/ui/window.ui:408\nmsgid \"No Results Found\"\nmsgstr \"Нічого не знайдено\"\n\n#: data/ui/window.ui:409\nmsgid \"Try a different search\"\nmsgstr \"Спробуйте інші критерії пошуку\"\n\n#: data/ui/window.ui:426\nmsgid \"Please download Hamachi and follow the installation instructions\"\nmsgstr \"Будь ласка, завантажте Hamachi та слідуйте інструкції зі встановлення\"\n\n#: data/ui/window.ui:432\nmsgid \"_Download\"\nmsgstr \"_Звантажити\"\n\n#: data/ui/window.ui:451\nmsgid \"Hamachi Is Not Configured\"\nmsgstr \"Hamachi не налаштовано\"\n\n#: data/ui/window.ui:452\nmsgid \"You need to configure Hamachi before you can connect\"\nmsgstr \"Спершу потрібно налаштувати Hamachi\"\n\n#: data/ui/window.ui:458\nmsgid \"C_onfigure\"\nmsgstr \"На_лаштувати\"\n\n#: data/ui/window.ui:516 src/indicator.vala:124\nmsgid \"_Information\"\nmsgstr \"_Інформація\"\n\n#: data/ui/window.ui:523\nmsgid \"Sort by _Name\"\nmsgstr \"Впорядкувати за _назвою\"\n\n#: data/ui/window.ui:529\nmsgid \"Sort by _Status\"\nmsgstr \"Впорядкувати за _статусом\"\n\n#: data/ui/window.ui:537\nmsgid \"Show _Offline Members\"\nmsgstr \"_Показати учасників, що поза мережею\"\n\n#: data/ui/window.ui:544\nmsgid \"_Preferences\"\nmsgstr \"П_араметри\"\n\n#: data/ui/window.ui:548\nmsgid \"_Keyboard Shortcuts\"\nmsgstr \"_Клавіатурні скорочення\"\n\n#: data/ui/window.ui:552\nmsgid \"_Help\"\nmsgstr \"_Довідка\"\n\n#: data/ui/window.ui:556\nmsgid \"_About Haguichi\"\nmsgstr \"_Про Haguichi\"\n\n#: data/ui/window.ui:562 src/indicator.vala:132\nmsgid \"_Quit\"\nmsgstr \"Ви_йти\"\n\n#: src/bubble.vala:44\nmsgid \"Reconnect\"\nmsgstr \"Перез'єднатись\"\n\n#: src/controller.vala:283\nmsgid \"No internet connection\"\nmsgstr \"Відсутнє під'єднання до Інтернету\"\n\n#: src/controller.vala:288 src/controller.vala:321\nmsgid \"Logging in\"\nmsgstr \"Вхід\"\n\n#: src/controller.vala:348\nmsgid \"Error connecting\"\nmsgstr \"Помилка з'єднання\"\n\n#: src/controller.vala:378\nmsgid \"Hamachi login failed\"\nmsgstr \"Помилка входу Hamachi\"\n\n#: src/controller.vala:459\nmsgid \"Updating\"\nmsgstr \"Оновлення\"\n\n#: src/controller.vala:622 src/indicator.vala:85 src/window.vala:546\nmsgid \"Connected\"\nmsgstr \"З'єднано\"\n\n#: src/controller.vala:730\nmsgid \"Member Joined\"\nmsgstr \"Користувач підключився\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet\".\n#: src/controller.vala:732\nmsgid \"{0} joined the network {1}\"\nmsgstr \"{0} підключився до мережі {1}\"\n\n#. Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n#: src/controller.vala:734\nmsgid \"{0} joined the network {1} and {2} other network\"\nmsgid_plural \"{0} joined the network {1} and {2} other networks\"\nmsgstr[0] \"{0} під’єднався до мережі {1} та до мережі {2}\"\nmsgstr[1] \"{0} під’єднався до мережі {1} та до інших мереж {2}\"\nmsgstr[2] \"{0} під’єднався до мережі {1} та до інших мереж {2}\"\n\n#: src/controller.vala:760\nmsgid \"Member Left\"\nmsgstr \"Користувач покинув мережу\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet\".\n#: src/controller.vala:762\nmsgid \"{0} left the network {1}\"\nmsgstr \"{0} покинув мережу {1}\"\n\n#. Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n#: src/controller.vala:764\nmsgid \"{0} left the network {1} and {2} other network\"\nmsgid_plural \"{0} left the network {1} and {2} other networks\"\nmsgstr[0] \"{0} від’єднався від мережі {1} та від мережі {2}\"\nmsgstr[1] \"{0} від’єднався від мережі {1} та від інших мереж {2}\"\nmsgstr[2] \"{0} від’єднався від мережі {1} та від інших мереж {2}\"\n\n#: src/controller.vala:786\nmsgid \"Member Online\"\nmsgstr \"Учасники в мережі\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet\".\n#: src/controller.vala:788\nmsgid \"{0} came online in the network {1}\"\nmsgstr \"{0} з’єявився в мережі {1}\"\n\n#. Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n#: src/controller.vala:790\nmsgid \"{0} came online in the network {1} and {2} other network\"\nmsgid_plural \"{0} came online in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} з’явився в мережі {1} та в мережі {2}\"\nmsgstr[1] \"{0} з’явився в мережі {1} та в {2} інших мережах\"\nmsgstr[2] \"{0} з’явився в мережі {1} та в {2} інших мережах\"\n\n#: src/controller.vala:812\nmsgid \"Member Offline\"\nmsgstr \"Користувач відключився\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n#: src/controller.vala:814\nmsgid \"{0} went offline in the network {1}\"\nmsgstr \"{0} покинув мережу {1}\"\n\n#. Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n#: src/controller.vala:816\nmsgid \"{0} went offline in the network {1} and {2} other network\"\nmsgid_plural \"{0} went offline in the network {1} and {2} other networks\"\nmsgstr[0] \"{0} покинув мережу {1} та в мережу {2}\"\nmsgstr[1] \"{0} покинув мережу {1} та інші мережі {2}\"\nmsgstr[2] \"{0} покинув мережу {1} та інші мережі {2}\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Edit Command\"\nmsgstr \"Змінити команду\"\n\n#: src/dialogs/add-edit-command.vala:77\nmsgid \"Add Command\"\nmsgstr \"Додати команду\"\n\n#: src/dialogs/attach.vala:55\nmsgid \"Attach request sent\"\nmsgstr \"Запит на додавання надіслано\"\n\n#: src/dialogs/attach.vala:64\nmsgid \"Account not found\"\nmsgstr \"Обліковий запис не знайдено\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Join Network\"\nmsgstr \"Приєднати мережу\"\n\n#: src/dialogs/join-create-network.vala:33\nmsgid \"Create Network\"\nmsgstr \"Створити мережу\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"_Join\"\nmsgstr \"При_єднати\"\n\n#: src/dialogs/join-create-network.vala:35\nmsgid \"C_reate\"\nmsgstr \"С_творити\"\n\n#: src/dialogs/join-create-network.vala:73\nmsgid \"Join request sent\"\nmsgstr \"Запит на приєднання надіслано\"\n\n#: src/dialogs/join-create-network.vala:98\nmsgid \"Network not found\"\nmsgstr \"Мережу не знайдено\"\n\n#: src/dialogs/join-create-network.vala:102\nmsgid \"Invalid password\"\nmsgstr \"Хибний пароль\"\n\n#: src/dialogs/join-create-network.vala:104\nmsgid \"Network is full\"\nmsgstr \"Мережа немає вільних місць\"\n\n#: src/dialogs/join-create-network.vala:106\nmsgid \"Network is locked\"\nmsgstr \"Мережа заблокована\"\n\n#: src/dialogs/join-create-network.vala:109\nmsgid \"Network already joined\"\nmsgstr \"Мережа вже приєднана\"\n\n#: src/dialogs/join-create-network.vala:171\nmsgid \"Network ID is already taken\"\nmsgstr \"Ідентифікатор мережі вже використовуються\"\n\n#: src/hamachi.vala:550 src/member.vala:69 src/network.vala:158\nmsgid \"Unknown\"\nmsgstr \"Невідомо\"\n\n#: src/hamachi.vala:578 src/window.vala:467\nmsgid \"Anonymous\"\nmsgstr \"Анонімний\"\n\n#: src/hamachi.vala:699 src/hamachi.vala:702\nmsgid \"Password changed\"\nmsgstr \"Пароль змінено\"\n\n#: src/hamachi.vala:723\nmsgid \"Saving backup…\"\nmsgstr \"Збереження резервної копії…\"\n\n#: src/hamachi.vala:740\nmsgid \"Backup saved\"\nmsgstr \"Резервну копію збережено\"\n\n#: src/hamachi.vala:740\nmsgid \"Failed to save backup\"\nmsgstr \"Помилка збереження резервної копії\"\n\n#: src/hamachi.vala:754\nmsgid \"Restoring backup…\"\nmsgstr \"Відновлення з резервної копії…\"\n\n#: src/hamachi.vala:795\nmsgid \"Backup restored\"\nmsgstr \"Резервну копію відновлено\"\n\n#: src/hamachi.vala:795\nmsgid \"Failed to restore backup\"\nmsgstr \"Помилка відновлення з резервної копії\"\n\n#: src/hamachi.vala:802\nmsgid \"Archive does not contain expected files\"\nmsgstr \"Архів не містить очікуваних файлів\"\n\n#: src/indicator.vala:85 src/window.vala:544\nmsgid \"Connecting\"\nmsgstr \"З’єднання\"\n\n#: src/indicator.vala:85 src/window.vala:548\nmsgid \"Disconnected\"\nmsgstr \"Роз’єднано\"\n\n#: src/indicator.vala:93\nmsgid \"_Show Haguichi\"\nmsgstr \"_Показати Haguichi\"\n\n#: src/indicator.vala:104\nmsgid \"_Disconnect\"\nmsgstr \"_Відключити\"\n\n#: src/indicator.vala:104\nmsgid \"C_onnect\"\nmsgstr \"П_ідключити\"\n\n#: src/member.vala:231\nmsgid \"Are you sure you want to evict member “{0}” from network “{1}”?\"\nmsgstr \"Впевнені, що бажаєте виселити користувача”{0}” з мережі “{1}”?\"\n\n#: src/member.vala:232\nmsgid \"If admitted, evicted members can rejoin the network at any later time.\"\nmsgstr \"Якщо обрано, то користувач може приєднатись до мережі пізніше знову.\"\n\n#: src/network.vala:148\nmsgid \"You\"\nmsgstr \"Ви\"\n\n#: src/network.vala:345\nmsgid \"Are you sure you want to leave the network “{0}”?\"\nmsgstr \"Впевнені, що бажаєте покинути мережу “{0}”?\"\n\n#: src/network.vala:346\nmsgid \"If admitted, you can rejoin the network at any later time.\"\nmsgstr \"Якщо обрано, то ви можете приєднатись до мережі пізніше знову.\"\n\n#: src/network.vala:374\nmsgid \"Are you sure you want to delete the network “{0}”?\"\nmsgstr \"Впевнені, що бажаєте вилучити мережу “{0}”?\"\n\n#: src/network.vala:375\nmsgid \"If you delete a network, it will be permanently lost.\"\nmsgstr \"Після вилучення, мережу буде втрачено.\"\n\n#: src/preferences.vala:107\nmsgid \"Not present\"\nmsgstr \"Відсутній\"\n\n#: src/preferences.vala:285\nmsgid \"All supported archives\"\nmsgstr \"Усі підтримувані архіви\"\n\n#: src/preferences.vala:305\nmsgid \"Save a Backup\"\nmsgstr \"Зберегти резервну копію\"\n\n#: src/preferences.vala:327\nmsgid \"Restore from Backup\"\nmsgstr \"Відновити з резервної копії\"\n\n#: src/preferences.vala:328 src/widgets/commands-editor.vala:62\nmsgid \"_Restore\"\nmsgstr \"_Відновити\"\n\n#: src/preferences.vala:372\nmsgid \"Never\"\nmsgstr \"Ніколи\"\n\n#: src/preferences.vala:395\n#, c-format\nmsgid \"%S second\"\nmsgid_plural \"%S seconds\"\nmsgstr[0] \"%S секунда\"\nmsgstr[1] \"%S секунди\"\nmsgstr[2] \"%S секунд\"\n\n#: src/preferences.vala:399\n#, c-format\nmsgid \"%S minute\"\nmsgid_plural \"%S minutes\"\nmsgstr[0] \"%S хвилина\"\nmsgstr[1] \"%S хвилини\"\nmsgstr[2] \"%S хвилин\"\n\n#: src/sidebar.vala:174\nmsgid \"Unavailable\"\nmsgstr \"Недоступно\"\n\n#: src/sidebar.vala:192\nmsgid \"pending\"\nmsgstr \"в очікуванні\"\n\n#: src/sidebar.vala:193\nmsgid \"Not attached\"\nmsgstr \"Не під'єднано\"\n\n#: src/sidebar.vala:211\nmsgid \"{0} online, {1} total\"\nmsgstr \"{0} в мережі, {1} загалом\"\n\n#: src/status.vala:35\nmsgid \"Offline\"\nmsgstr \"Поза мережею\"\n\n#: src/status.vala:39\nmsgid \"Online\"\nmsgstr \"В мережі\"\n\n#: src/status.vala:41 src/status.vala:75 src/status.vala:85\nmsgid \"Relayed\"\nmsgstr \"Через ретранслятор\"\n\n#: src/status.vala:48\nmsgid \"Unreachable\"\nmsgstr \"Недосяжний\"\n\n#: src/status.vala:52\nmsgid \"Awaiting approval\"\nmsgstr \"В очікуванні затвердження\"\n\n#: src/status.vala:56\nmsgid \"Unknown error\"\nmsgstr \"Невідома помилка\"\n\n#: src/status.vala:60\nmsgid \"Protocol mismatch\"\nmsgstr \"Протокол не збігається\"\n\n#: src/status.vala:62\nmsgid \"Conflicting address\"\nmsgstr \"Конфліктуючі адреси\"\n\n#: src/status.vala:73\nmsgid \"Direct\"\nmsgstr \"Безпосередній\"\n\n#: src/widgets/commands-editor.vala:60\nmsgid \"Restore default commands?\"\nmsgstr \"Відновити типові команди?\"\n\n#: src/widgets/commands-editor.vala:61\nmsgid \"All customizations will be lost.\"\nmsgstr \"Всі налаштування буде втрачено\"\n\n#: src/widgets/commands-editor.vala:103\n#, c-format\nmsgid \"Removed command “%s”\"\nmsgstr \"Вилучено команду «%s»\"\n\n#: src/widgets/commands-editor.vala:104\nmsgid \"_Undo\"\nmsgstr \"_Скасувати\"\n\n#: src/window.vala:198\nmsgid \"Configuring\"\nmsgstr \"Налаштування\"\n\n#. Translator credits. Put one translator per line, in the form of \"NAME URL\".\n#: src/window.vala:363\nmsgid \"translator-credits\"\nmsgstr \"\"\n\"Aleksei Motsik https://launchpad.net/~naghual80\\n\"\n\"Fedir Zinchuk https://launchpad.net/~fedikw\"\n\n#: src/window.vala:444\nmsgid \"Copied to clipboard\"\nmsgstr \"Скопійовано до буфера обміну\"\n\n#: src/window.vala:479\nmsgid \"Reconnecting in {0} second\"\nmsgid_plural \"Reconnecting in {0} seconds\"\nmsgstr[0] \"Перепід’єднання через {0} секунду\"\nmsgstr[1] \"Перепід’єднання через {0} секунди\"\nmsgstr[2] \"Перепід’єднання через {0} секунд\"\n\n#: src/window.vala:510\nmsgid \"Hamachi Is Not Installed\"\nmsgstr \"Hamachi не встановлено\"\n\n#: src/window.vala:512\n#, c-format\nmsgid \"Hamachi Version %s Is Obsolete\"\nmsgstr \"Версія %s Hamachi є застарілою\"\n\n#: src/window.vala:611\nmsgid \"\"\n\"Haguichi will continue to run when its window is closed so that it can \"\n\"monitor the connection and send notifications.\"\nmsgstr \"\"\n\"Haguichi продовжить працювати у фоновому режимі, коли вікно закрито, щоб \"\n\"мати змогу моніторити з’єднання та надсилати сповіщення.\"\n"
  },
  {
    "path": "src/application.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nusing Config;\n\nnamespace Haguichi {\n    public Application app;\n    public Window      win;\n    public Indicator   indicator;\n\n    public static Connection connection;\n    public static Session    session;\n    public static Inhibitor  inhibitor;\n\n    public static bool   run_in_background;\n    public static bool   demo_mode;\n    public static string demo_list_path;\n    public static string current_desktop;\n\n    public static ThreadPool<Member>  member_threads;\n    public static ThreadPool<Network> network_threads;\n\n    private static uint registration_id;\n\n    public class Application : Adw.Application {\n        public Application () {\n            Object (application_id: APP_ID, flags: ApplicationFlags.DEFAULT_FLAGS);\n\n            Intl.bindtextdomain          (GETTEXT_PACKAGE, LOCALEDIR);\n            Intl.bind_textdomain_codeset (GETTEXT_PACKAGE, \"UTF-8\");\n            Intl.textdomain              (GETTEXT_PACKAGE);\n        }\n\n        construct {\n            add_main_option_entries ({\n                { \"version\",    'v', 0, OptionArg.NONE,   null,                  \"Show version number\",                  null   },\n                { \"debug\",      'd', 0, OptionArg.NONE,   null,                  \"Print debug messages\",                 null   },\n                { \"background\", 'b', 0, OptionArg.NONE,   out run_in_background, \"Run in background\",                    null   },\n                { \"demo\",         0, 0, OptionArg.NONE,   out demo_mode,         \"Run in demo mode\",                     null   },\n                { \"list\",         0, 0, OptionArg.STRING, out demo_list_path,    \"Use a text file as list in demo mode\", \"FILE\" },\n                { null }\n            });\n\n            ActionEntry[] action_entries = {\n                { \"toggle-window\",  toggle_window_action,       },\n                { \"connect\",        connect_action              },\n                { \"disconnect\",     disconnect_action           },\n                { \"join-network\",   join_network_action         },\n                { \"create-network\", create_network_action       },\n                { \"approve-reject\", approve_reject_action, \"as\" },\n                { \"info\",           info_action                 },\n                { \"quit\",           quit_action                 },\n            };\n            add_action_entries (action_entries, this);\n        }\n\n        public static int main (string[] args) {\n            if (\"-v\" in args || \"--version\" in args) {\n                stdout.printf (\"%s %s\\n\", APP_NAME, VERSION);\n                return 0;\n            }\n\n            if (\"-d\" in args || \"--debug\" in args) {\n                Environment.set_variable (\"G_MESSAGES_DEBUG\", APP_NAME, true);\n            }\n\n            app = new Application ();\n#if FOR_ELEMENTARY\n            Gtk.init ();\n            Granite.init ();\n#endif\n            return app.run (args);\n        }\n\n        public override void startup () {\n            base.startup ();\n\n            uint64 startup_moment = get_real_time ();\n\n            debug (\"Greetings, I am %s %s\", APP_NAME, VERSION);\n\n            debug (\"running_under_flatpak: %s\", Xdp.Portal.running_under_flatpak ().to_string ());\n            Command.spawn_wrap = Xdp.Portal.running_under_flatpak () ? \"flatpak-spawn --host \" : \"\";\n\n            current_desktop = Environment.get_variable (\"XDG_CURRENT_DESKTOP\");\n            debug (\"current_desktop: %s\", current_desktop);\n\n            var gtk_settings = Gtk.Settings.get_default ();\n            // Never show window icon inside the headerbar\n            gtk_settings.gtk_decoration_layout = gtk_settings.gtk_decoration_layout.replace (\"icon\", \"\");\n#if FOR_ELEMENTARY\n            // Pin stylesheet and icon theme on elementary OS\n            gtk_settings.set (\"gtk-theme-name\", \"io.elementary.stylesheet.strawberry\");\n            gtk_settings.set (\"gtk-icon-theme-name\", \"elementary\");\n#endif\n\n            connection = new Connection ();\n            inhibitor  = new Inhibitor ();\n\n            try {\n                member_threads = new ThreadPool<Member>.with_owned_data ((member) => {\n                    member.get_long_nick_thread ();\n                }, 2, false);\n                network_threads = new ThreadPool<Network>.with_owned_data ((network) => {\n                    network.determine_ownership_thread ();\n                }, 2, false);\n            } catch (ThreadError e) {\n                critical (\"threading: %s\", e.message);\n            }\n\n            Controller.init ();\n\n            debug (\"startup: Completed startup in %s microseconds\", (get_real_time () - startup_moment).to_string ());\n        }\n\n        public override void activate () {\n            base.activate ();\n\n            if (win == null) {\n                win = new Window (this);\n\n                if (!run_in_background) {\n                    win.present ();\n                    win.set_focus (null);\n                }\n            } else {\n                win.present ();\n            }\n        }\n\n        public override bool dbus_register (DBusConnection connection, string object_path) throws Error {\n            base.dbus_register (connection, object_path);\n\n            session = new Session ();\n            registration_id = connection.register_object (\"/com/github/ztefn/haguichi\", session);\n\n            return true;\n        }\n\n        public override void dbus_unregister (DBusConnection connection, string object_path) {\n            connection.unregister_object (registration_id);\n\n            base.dbus_unregister (connection, object_path);\n        }\n\n        public void set_color_scheme (int scheme) {\n            var color_scheme = scheme == 1 ? Adw.ColorScheme.FORCE_LIGHT :\n                               scheme == 2 ? Adw.ColorScheme.FORCE_DARK  :\n                                             Adw.ColorScheme.DEFAULT;\n\n            debug (\"set_color_scheme: setting color scheme to %s\", color_scheme.to_string ());\n            style_manager.set_color_scheme (color_scheme);\n        }\n\n        public void toggle_window_action () {\n            if (win.visible) {\n                win.hide ();\n            } else {\n                win.present ();\n            }\n        }\n\n        private void connect_action () {\n            win.trigger_action (\"connect\");\n        }\n\n        private void disconnect_action () {\n            win.trigger_action (\"disconnect\");\n        }\n\n        public void join_network_action () {\n            win.present ();\n            win.trigger_action (\"join-network\");\n        }\n\n        public void create_network_action () {\n            win.present ();\n            win.trigger_action (\"create-network\");\n        }\n\n        private void info_action () {\n            win.present ();\n            win.trigger_action (\"info\");\n        }\n\n        private void quit_action () {\n            win.trigger_action (\"quit\");\n        }\n\n        private void approve_reject_action (SimpleAction action, Variant? param) {\n            string[] args = param.get_strv ();\n\n            // We expect at least three arguments (operation, client ID and one or more network IDs)\n            if (args.length > 2) {\n                var operation = args[0];\n                var client_id = args[1];\n\n                // Collect the network IDs\n                string[] network_ids = {};\n                for (int i = 2; i < args.length; i++) {\n                    network_ids += args[i];\n                }\n\n                debug (\"approve_or_reject: Go %s join request for client %s in network(s) %s\\n\", operation, client_id, string.joinv (\", \", network_ids));\n\n                // Approve or reject member only if we are still connected\n                if (Controller.last_status >= 6) {\n                    // Iterate all supplied network IDs\n                    foreach (string network_id in network_ids) {\n                        // Find actual network that matches the ID\n                        foreach (Network network in connection.networks) {\n                            if (network.id == network_id) {\n                                // Find our member in the network\n                                foreach (Member member in network.members) {\n                                    if (member.id == client_id) {\n                                        // Check if member still requires approval\n                                        if (member.status.status_int == 3) {\n                                            // Finally execute the desired operation\n                                            if (operation == \"approve\") {\n                                                member.approve ();\n                                            } else if (operation == \"reject\") {\n                                                member.reject ();\n                                            }\n                                        }\n                                        // Stop iteration of members\n                                        break;\n                                    }\n                                }\n                                // Stop iteration of networks\n                                break;\n                            }\n                        }\n                    }\n                } else {\n                    debug (\"approve_reject: Not connected\");\n                }\n            } else {\n                warning (\"approve_reject: Too few arguments, expected \\\"operation, client_id, network_id1, network_id2, ...\\\"\");\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/bubble.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Bubble : Object {\n        private Notification notification;\n\n        public Bubble (string summary, string? body) {\n            notification = new Notification (summary);\n\n            if (body != null) {\n                notification.set_body (body);\n            }\n\n            // On elementary OS set_icon is only used to set a badge icon,\n            // the app icon itself is automatically set based on application ID\n            // https://docs.elementary.io/develop/apis/notifications#badge-icons\n            if (Haguichi.current_desktop != \"Pantheon\") {\n                notification.set_icon (new ThemedIcon (Config.APP_ID));\n            }\n        }\n\n        public void show () {\n            Haguichi.app.send_notification (null, notification);\n        }\n\n        public bool server_supports_actions () {\n            // Unity desktop running NotifyOSD server doesn't support actions\n            // https://wiki.ubuntu.com/NotifyOSD\n            return Haguichi.current_desktop.has_prefix (\"Unity\") ? false : true;\n        }\n\n        public void add_reconnect_action () {\n            if (server_supports_actions ()) {\n                notification.add_button (_(\"Reconnect\"), \"app.connect\");\n            }\n        }\n\n        public void add_approve_reject_actions (string client_id, string[] network_ids) {\n            if (server_supports_actions ()) {\n                string[] approve_args = {\"approve\", client_id};\n                string[] reject_args  = {\"reject\",  client_id};\n\n                foreach (string network_id in network_ids) {\n                    approve_args += network_id;\n                    reject_args  += network_id;\n                }\n\n                notification.add_button_with_target_value (Utils.remove_mnemonics (_(\"_Approve\")), \"app.approve-reject\", approve_args);\n                notification.add_button_with_target_value (Utils.remove_mnemonics (_(\"_Reject\")),  \"app.approve-reject\", reject_args);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/command.vala",
    "content": " /*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Command : Object {\n        public static bool hamachi_binary_exists;\n        public static bool hamachi_use_daemon;\n\n        public static string spawn_wrap;\n\n        public static string sudo;\n        public static string sudo_start;\n\n        public static string terminal;\n        public static string file_manager;\n        public static string remote_desktop;\n\n        private static string flatpak_list;\n\n        private static Menu commands_menu;\n        private static CustomCommand default_command;\n        private static Array<CustomCommand> active_commands;\n\n        private static Settings settings;\n\n        public static void init () {\n            settings = new Settings (Config.APP_ID + \".commands\");\n\n            hamachi_binary_exists = exists (\"hamachi\");\n            hamachi_use_daemon = !hamachi_binary_exists && Utils.path_exists (\"f\", Hamachi.DAEMON_PATH);\n\n            if (!hamachi_binary_exists) {\n                warning (\"Hamachi binary not found%s\", hamachi_use_daemon ? \", using daemon instead\" : \"\");\n            }\n\n            if (exists (\"flatpak\")) {\n                flatpak_list = return_output (\"flatpak list --app\");\n                debug (\"flatpak_list:\\n%s\", flatpak_list);\n            }\n\n            determine_sudo ();\n            determine_terminal ();\n            determine_file_manager ();\n            determine_remote_desktop ();\n\n            Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                fill_custom_commands ();\n                return false;\n            });\n        }\n\n        public static void execute (string command) {\n            if (command == \"\") {\n                return;\n            }\n\n            try {\n                Process.spawn_command_line_async (spawn_wrap + command);\n            } catch (SpawnError e) {\n                critical (\"execute: %s\", e.message);\n            }\n        }\n\n        public static string return_output (string command) {\n            string stdout;\n            string stderr;\n            int    exit_status;\n\n            string cmd = parse_hamachi_command (command);\n\n            try {\n                Process.spawn_command_line_sync (spawn_wrap + cmd, out stdout, out stderr, out exit_status);\n\n                if (stderr != \"\") {\n                    warning (\"return_output stderr: %s\", stderr);\n                }\n            } catch (SpawnError e) {\n                critical (\"return_output: %s\", e.message);\n            }\n\n            // We don't like NULL strings\n            if (stdout == null) {\n                stdout = \"\";\n            }\n\n            // When Hamachi is busy try again after a little while\n            if (stdout.contains (\".. failed, busy\")) {\n                debug (\"Hamachi is busy, waiting to try again...\");\n                Thread.usleep (100000);\n\n                stdout = return_output (cmd);\n            }\n\n            // When there's no regular output we'd want to return the error if available\n            return (stdout == \"\" && stderr != \"\") ? stderr : stdout;\n        }\n\n        public static string return_output_with_timeout (int timeout, string command) {\n            return return_output (\"timeout %d %s\".printf (timeout, parse_hamachi_command (command)));\n        }\n\n        private static string parse_hamachi_command (string command) {\n            string cmd = command;\n\n            if (hamachi_use_daemon && command.has_prefix (\"hamachi\")) {\n                // Call daemon with process name set to `hamachi` so that it acts as command line interface\n                cmd = \"bash -c 'exec -a hamachi %s%s'\".printf (Hamachi.DAEMON_PATH, command.substring (7).replace (\"'\", \"'\\\\''\"));\n            }\n\n            return cmd;\n        }\n\n        public static bool exists (string? command) {\n            if (command == null || command == \"\") {\n                return false;\n            }\n\n            bool result;\n            if (command.has_prefix (\"flatpak run \")) {\n                try {\n                    // Extract application ID and check for its presence in the list\n                    // Ignore any OPTIONS and ARGUMENTS from the command string and find the application ID by its reverse-DNS format\n                    MatchInfo mi;\n                    new Regex (\"\"\"^flatpak run.*? (?<id>[a-zA-Z0-9][a-zA-Z0-9\\.\\_\\-]+[a-zA-Z0-9]).*?$\"\"\").match (command, 0, out mi);\n                    string id = mi.fetch_named (\"id\");\n                    result = (flatpak_list != null && flatpak_list.contains (\"\\t%s\\t\".printf (id)));\n                } catch (RegexError e) {\n                    critical (\"exists: %s\", e.message);\n                    return false;\n                }\n            } else {\n                string stdout = return_output (\"bash -c \\\"command -v %s &>/dev/null || echo 'command not found'\\\"\".printf (command.split (\" \", 0)[0]));\n                result = !stdout.contains (\"command not found\");\n            }\n\n            debug (\"exists: %s %s\", command, result.to_string ());\n            return result;\n        }\n\n        private static void determine_sudo () {\n            sudo       = settings.get_string (\"super-user\");\n            sudo_start = \"\";\n\n            if (sudo == \"auto\") {\n                sudo = get_available ({\n                    \"pkexec\",\n                    \"kdesu\",\n                    \"run0\",\n                    \"sudo\"\n                }, \"\");\n            }\n\n            if (sudo == \"sudo\") {\n                sudo_start = \"-- \";\n            }\n\n            debug (\"determine_sudo: %s\", sudo);\n        }\n\n        private static string get_available (string[] commands, string? fallback) {\n            // Check each command in the list for existence, and return immediately if it does\n            foreach (string cmd in commands) {\n                if (exists (cmd)) {\n                    return cmd;\n                }\n            }\n\n            // Return fallback if no command is available\n            return fallback;\n        }\n\n        private static void determine_terminal () {\n            terminal = get_available ({\n                \"flatpak run app.devsuite.Ptyxis\",\n                \"flatpak run org.gnome.Console\",\n                \"flatpak run org.kde.konsole\",\n                \"gnome-terminal\",\n                \"mate-terminal\",\n                \"io.elementary.terminal\",\n                \"kgx\",\n                \"ptyxis\",\n                \"ghostty\",\n                \"tilix\",\n                \"xfce4-terminal\",\n                \"konsole\",\n                \"deepin-terminal\",\n                \"qterminal\",\n                \"lxterminal\",\n                \"cosmic-term\",\n                \"uxterm\",\n                \"xterm\"\n            }, \"gnome-terminal\");\n\n            debug (\"determine_terminal: %s\", terminal);\n        }\n\n        private static void determine_file_manager () {\n            file_manager = get_available ({\n                \"flatpak run org.gnome.Nautilus\",\n                \"flatpak run org.kde.dolphin\",\n                \"nautilus\",\n                \"caja\",\n                \"nemo\",\n                \"io.elementary.files\",\n                \"thunar\",\n                \"dolphin\",\n                \"dde-file-manager\",\n                \"pcmanfm-qt\",\n                \"pcmanfm\",\n                \"cosmic-files\"\n            }, \"nautilus\");\n\n            debug (\"determine_file_manager: %s\", file_manager);\n        }\n\n        private static void determine_remote_desktop () {\n            remote_desktop = get_available ({\n                \"flatpak run org.kde.krdc\",\n                \"gvncviewer\",\n                \"krdc\",\n                \"vncviewer\",\n                \"xtightvncviewer\",\n                \"xvnc4viewer\",\n                \"rdesktop\",\n                \"vinagre\"\n            }, \"gvncviewer\");\n\n            debug (\"determine_remote_desktop: %s\", remote_desktop);\n        }\n\n        public static Menu get_commands_menu () {\n            if (commands_menu == null) {\n                commands_menu = new Menu ();\n            }\n\n            return commands_menu;\n        }\n\n        public static void fill_custom_commands () {\n            new Thread<void*> (null, () => {\n                // Initiate or clear existing commands\n                default_command = null;\n                active_commands = new Array<CustomCommand> ();\n                get_commands_menu ().remove_all ();\n\n                int number = 1;\n                string[] commands = settings.get_strv (\"customizable\");\n                foreach (string command_str in commands) {\n                    string[] command = command_str.split (\";\", 6);\n\n                    if (command.length == 6) {\n                        string is_active  = command[0];\n                        string is_default = command[1];\n                        string label      = command[2];\n                        string cmd_ipv4   = command[3].replace (\"{COLON}\", \";\");\n                        string cmd_ipv6   = command[4].replace (\"{COLON}\", \";\");\n                        string priority   = command[5];\n\n                        var custom_command = new CustomCommand (is_active, is_default, label, cmd_ipv4, cmd_ipv6, priority);\n                        if (custom_command.exists ()) {\n                            if (command[0] == \"true\") {\n                                win.install_action (\"win.run-command-%d\".printf (number), null, (Gtk.WidgetActionActivateFunc) run_command_action);\n                                active_commands.append_val (custom_command);\n                                commands_menu.append (_(label), \"win.run-command-%d\".printf (number));\n                                number ++;\n                            }\n                            if (command[1] == \"true\") {\n                                default_command = custom_command;\n                            }\n                        }\n                    }\n                }\n\n                return null;\n            });\n        }\n\n        public static void set_active_commands_enabled (Member member) {\n            if (active_commands != null) {\n                var number = 1;\n                foreach (CustomCommand command in active_commands) {\n                    win.action_set_enabled (\"win.run-command-%d\".printf (number), command.enabled_for_member (member));\n                    number ++;\n                }\n            }\n        }\n\n        public static string replace_variables (owned string command, string address, string nick, string id) {\n            command = command.replace (\"%A\",  address);\n            command = command.replace (\"%N\",  nick   );\n            command = command.replace (\"%ID\", id     );\n\n            if (command.contains (\"%TERMINAL\")) {\n                bool use_double_dash = strv_contains ({\n                    \"gnome-terminal\",\n                    \"ptyxis\",\n                    \"flatpak run app.devsuite.Ptyxis\",\n                    \"cosmic-term\"\n                }, terminal);\n\n                bool use_quotes = !use_double_dash && terminal != \"ghostty\";\n\n                string option = use_double_dash ? \"--\" : \"-e\";\n                string quote  = use_quotes      ? \"\\\"\" : \"\";\n\n                try {\n                    // For terminals that use quotes for the command argument escape any quotes in the command itself\n                    // unless already preceded by a backslash\n                    if (use_quotes) {\n                        Regex regex = new Regex (\"(?<!\\\\\\\\)\\\"\");\n                        command = regex.replace (command, -1, 0, \"\\\\\\\\\\\"\");\n                    }\n                    command = new Regex (\"%TERMINAL ?(.*)\").replace (command, -1, 0, \"%s %s %s\\\\1%s\".printf (terminal, option, quote, quote));\n                } catch (RegexError e) {\n                    critical (\"replace_variables: %s\", e.message);\n                }\n            }\n            command = command.replace (\"%FILEMANAGER\",   file_manager);\n            command = command.replace (\"%REMOTEDESKTOP\", remote_desktop);\n            command = command.replace (\"{COLON}\",        \";\");\n\n            return (command != null) ? command : \"\";\n        }\n\n        private void run_command_action (string action_name, Variant? parameter) {\n            var number = int.parse (action_name.replace (\"win.run-command-\", \"\"));\n            var index  = number - 1;\n            var member = win.network_list.get_selected_member ();\n\n            if (member != null && index < active_commands.length) {\n                var command = active_commands.index (index);\n                var cmd = command.return_for_member (member);\n                debug (\"run_command_action: %s\", cmd);\n                execute (cmd);\n            }\n        }\n\n        public static void execute_default_command (Member member) {\n            if (default_command.enabled_for_member (member)) {\n                var cmd = default_command.return_for_member (member);\n                debug (\"execute_default_command: %s\", cmd);\n                execute (cmd);\n            }\n        }\n\n        public static void open_redirect_uri (string action) {\n            open_uri (\"https://haguichi.net/redirect/?action=%s&version=%s&language=%s\".printf (action, Config.VERSION, Intl.get_language_names ()[1]));\n        }\n\n        private static void open_uri (string uri) {\n            debug (\"open_uri: %s\", uri);\n            new Gtk.UriLauncher (uri).launch.begin (win, null);\n        }\n\n        public static void open_file (string path) {\n            debug (\"open_file: %s\", path);\n            File file = File.new_for_path (path);\n            new Gtk.FileLauncher (file).launch.begin (win, null);\n        }\n    }\n}\n"
  },
  {
    "path": "src/config.vala.in",
    "content": "namespace Config\n{\n    public const string APP_ID          = \"@APP_ID@\";\n    public const string APP_NAME        = \"@APP_NAME@\";\n    public const string VERSION         = \"@VERSION@\";\n    public const string GETTEXT_PACKAGE = \"@GETTEXT_PACKAGE@\";\n    public const string LOCALEDIR       = \"@LOCALEDIR@\";\n    public const string VALA_VERSION    = \"@VALA_VERSION@\";\n}\n"
  },
  {
    "path": "src/connection.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Connection : Object {\n        private HashTable<string, string> long_nicks_hash;\n        private Settings settings;\n\n        public List<Network> networks;\n\n        public Connection () {\n            networks = new List<Network> ();\n            long_nicks_hash = new HashTable<string, string> (str_hash, str_equal);\n\n            // Retrieve saved long nicks from GSettings\n            settings = new Settings (Config.APP_ID + \".network-list\");\n            string[] long_nicks = settings.get_strv (\"long-nicks\");\n\n            // Add saved long nicks to the hash table\n            foreach (string long_nick in long_nicks) {\n                string[] parts = long_nick.split (\";\", 2);\n\n                if (parts.length == 2) {\n                    add_long_nick (parts[0], parts[1]);\n                }\n            }\n        }\n\n        public void add_network (Network network) {\n            networks.append (network);\n            win.network_list.add_network (network, true);\n        }\n\n        public void remove_network (Network network) {\n            networks.remove (network);\n            win.network_list.remove_network (network);\n        }\n\n        public bool has_network (Network network) {\n            return (networks.index (network) > -1);\n        }\n\n        public void clear_networks () {\n            networks = new List<Network> ();\n        }\n\n        public bool has_long_nick (string client_id) {\n            return long_nicks_hash.contains (client_id);\n        }\n\n        public string get_long_nick (string client_id) {\n            return long_nicks_hash.lookup (client_id);\n        }\n\n        public void add_long_nick (string client_id, string long_nick) {\n            // Lock hash table while inserting because this function can be called from asynchronous Member.get_long_nick threads\n            lock (long_nicks_hash) {\n                long_nicks_hash.insert (client_id, long_nick);\n            }\n        }\n\n        public void save_long_nicks () {\n            string[] long_nicks = {};\n\n            long_nicks_hash.foreach ((client_id, long_nick) => {\n                long_nicks += client_id + \";\" + long_nick;\n            });\n\n            settings.set_strv (\"long-nicks\", long_nicks);\n        }\n    }\n}\n"
  },
  {
    "path": "src/controller.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Controller : Object {\n        public  static bool   continue_update;\n        public  static bool   manual_update;\n        public  static bool   restore;\n        public  static int    restore_countdown;\n        public  static int    last_status;\n        public  static int    num_update_cycles;\n        private static int    num_wait_for_internet_cycles;\n        private static string start_output;\n        private static string old_list;\n\n        private static Settings behavior;\n        private static Settings config;\n        private static Settings notifications;\n\n        private static HashTable<string, MemberEvent> members_left_hash;\n        private static HashTable<string, MemberEvent> members_online_hash;\n        private static HashTable<string, MemberEvent> members_offline_hash;\n        private static HashTable<string, MemberEvent> members_joined_hash;\n\n        private static List<Network> new_networks_list;\n\n        public static void init () {\n            behavior      = new Settings (Config.APP_ID + \".behavior\");\n            config        = new Settings (Config.APP_ID + \".config\");\n            notifications = new Settings (Config.APP_ID + \".notifications\");\n\n            new_networks_list = new List<Network> ();\n\n            new Thread<void*> (null, init_thread);\n        }\n\n        private static void* init_thread () {\n            Command.init ();\n            Hamachi.init ();\n\n            Idle.add_full (Priority.HIGH_IDLE, () => {\n                win.sidebar.update ();\n                return false;\n            });\n\n            last_status = -2;\n            status_check ();\n\n            Idle.add_full (Priority.HIGH_IDLE, () => {\n                if (last_status >= 6) {\n                    restore = behavior.get_boolean (\"reconnect-on-connection-loss\");\n                    win.set_mode (\"Connected\");\n                    get_network_list ();\n                } else if (last_status >= 5) {\n                    restore = behavior.get_boolean (\"reconnect-on-connection-loss\");\n                    go_connect ();\n                } else if (last_status >= 3 && behavior.get_boolean (\"connect-on-startup\")) {\n                    restore = true;\n                    go_connect ();\n                } else if (last_status >= 2 && behavior.get_boolean (\"connect-on-startup\")) {\n                    restore = true;\n                    win.set_mode (\"Disconnected\");\n                    wait_for_internet_cycle ();\n                } else if (last_status >= 2) {\n                    win.set_mode (\"Disconnected\");\n                } else if (last_status >= 1) {\n                    win.set_mode (\"Not configured\");\n                } else {\n                    win.set_mode (\"Not installed\");\n                }\n\n                return false;\n            });\n\n            return null;\n        }\n\n        public static void status_check () {\n            last_status = status_int ();\n        }\n\n        private static int status_int () {\n            if (demo_mode) {\n                return 6;\n            }\n\n            if (last_status > 1) {\n                if (!has_internet_connection ()) {\n                    // We don't want to call Hamachi if there's no Internet connection...\n                    debug (\"status_check: No internet connection\");\n                    return 2;\n                }\n            }\n\n            string output;\n\n            if (last_status == -2) {\n                // Reuse last info requested by Hamachi.init when (re)initializing to increase startup speed\n                output = Hamachi.last_info;\n            } else {\n                output = Hamachi.get_info ();\n            }\n\n            try {\n                if (Hamachi.version == \"\") {\n                    debug (\"status_check: Not installed\");\n                    return 0;\n                }\n\n                if (Hamachi.version.has_prefix (\"0.9.9.\") ||\n                    Hamachi.version.has_prefix (\"2.0.\") ||\n                    Hamachi.version.has_prefix (\"2.1.0.1\") ||\n                    Hamachi.version == \"2.1.0.68\" ||\n                    Hamachi.version == \"2.1.0.76\" ||\n                    Hamachi.version == \"2.1.0.80\" ||\n                    Hamachi.version == \"2.1.0.81\" ||\n                    Hamachi.version == \"2.1.0.84\" ||\n                    Hamachi.version == \"2.1.0.86\") {\n                    debug (\"status_check: Obsolete version %s installed\", Hamachi.version);\n                    return 0;\n                }\n\n                if (output.contains (\"You do not have permission to control the hamachid daemon.\") || !Utils.path_exists (\"f\", Hamachi.CONFIG_PATH)) {\n                    debug (\"status_check: Not configured\");\n                    return 1;\n                }\n\n                if (last_status <= 1) {\n                    if (!has_internet_connection ()) {\n                        debug (\"status_check: No internet connection\");\n                        return 2;\n                    }\n                }\n\n                if (output.contains (\"Hamachi does not seem to be running.\")) {\n                    debug (\"status_check: Not started\");\n                    return 3;\n                }\n\n                if (new Regex (\"status([ ]+):([ ]+)offline\").match (output)) {\n                    debug (\"status_check: Not logged in\");\n                    return 4;\n                }\n\n                if (new Regex (\"status([ ]+):([ ]+)logging in\").match (output)) {\n                    debug (\"status_check: Logging in\");\n                    return 5;\n                }\n\n                if (new Regex (\"status([ ]+):([ ]+)logged in\").match (output)) {\n                    debug (\"status_check: Logged in\");\n                    return 6;\n                }\n            } catch (RegexError e) {\n                critical (\"status_check: %s\", e.message);\n            }\n\n            debug (\"status_check: Unknown\");\n            return -1;\n        }\n\n        public static bool has_internet_connection () {\n            bool success = false;\n\n            string stdout;\n            string stderr;\n            int    status;\n\n            debug (\"has_internet_connection: Trying to ping %s...\", config.get_string (\"check-internet-ip\"));\n\n            try {\n                Process.spawn_command_line_sync (\"%sping -c1 -W1 %s\".printf (Command.spawn_wrap, config.get_string (\"check-internet-ip\")), out stdout, out stderr, out status);\n\n                success = (status == 0);\n\n                string output = (stderr != \"\") ? stderr : stdout;\n                if (!success) {\n                    warning (\"has_internet_connection: %s\", output);\n                } else {\n                    debug (\"has_internet_connection: %s\", output);\n                }\n            } catch (SpawnError e) {\n                critical (\"has_internet_connection: %s\", e.message);\n            }\n\n            if (!success) {\n                debug (\"has_internet_connection: Ping failed. Trying to resolve hostname %s using dig...\", config.get_string (\"check-internet-hostname\"));\n\n                try {\n                    Process.spawn_command_line_sync (\"%sdig +short +tries=1 +time=1 %s\".printf (Command.spawn_wrap, config.get_string (\"check-internet-hostname\")), out stdout, out stderr, out status);\n\n                    success = (status == 0 && stdout != \"\");\n\n                    string output = (stderr != \"\") ? stderr : stdout;\n                    if (!success) {\n                        warning (\"has_internet_connection: %s\", output);\n                    } else {\n                        debug (\"has_internet_connection: %s\", output);\n                    }\n                } catch (SpawnError e) {\n                    critical (\"has_internet_connection: %s\", e.message);\n                }\n            }\n\n            if (!success && !Command.exists (\"dig\")) {\n                debug (\"has_internet_connection: Dig not available - trying to connect to %s on port 53... \", config.get_string (\"check-internet-ip\"));\n\n                try {\n                    SocketClient client = new SocketClient ();\n                    client.timeout = 1;\n                    client.connect_to_host (config.get_string (\"check-internet-ip\"), 53);\n\n                    success = true;\n                } catch (Error e) {\n                    critical (\"has_internet_connection: %s\", e.message);\n                }\n            }\n\n            debug (\"has_internet_connection: %s\", success ? \"Success!\" : \"No success\");\n            return success;\n        }\n\n        public static void start_hamachi () {\n            restore_countdown = 0;\n            go_connect ();\n        }\n\n        public static void restart_hamachi () {\n            stop_hamachi ();\n            win.set_mode (\"Connecting\");\n\n            new Thread<void*> (null, () => {\n                // Wait a second before starting Hamachi again\n                Thread.usleep (1000000);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    start_hamachi ();\n                    return false;\n                });\n\n                return null;\n            });\n        }\n\n        public static void stop_hamachi () {\n            new Thread<void*> (null, () => {\n                if (!demo_mode) {\n                    Hamachi.logout ();\n                }\n\n                return null;\n            });\n\n            restore = false;\n            connection_stopped ();\n        }\n\n        public static void go_connect () {\n            new Thread<void*> (null, () => {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    win.set_mode (\"Connecting\");\n                    return false;\n                });\n\n                status_check ();\n\n                if (demo_mode) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        connection_established ();\n                        return false;\n                    });\n                } else if (last_status == 2) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        connection_stopped ();\n                        win.show_toast (_(\"No internet connection\"));\n                        return false;\n                    });\n                } else if (last_status >= 4) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.window_title.subtitle = _(\"Logging in\");\n                        return false;\n                    });\n                    go_login_thread ();\n                } else if (last_status >= 3) {\n                    debug (\"go_connect: Not yet started, go start\");\n\n                    // Wait half a second to finish updating GUI before showing blocking sudo dialog\n                    Thread.usleep (500000);\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        go_start ();\n                        return false;\n                    });\n                }\n\n                return null;\n            });\n        }\n\n        private static void go_start () {\n            start_output = Hamachi.start ();\n\n            new Thread<void*> (null, () => {\n                string output = start_output;\n\n                debug (\"go_start: Hamachi should be started now, let's check...\");\n                status_check ();\n\n                if (last_status >= 4) {\n                    debug (\"go_start: Hamachi is successfully started, now go login\");\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.window_title.subtitle = _(\"Logging in\");\n                        return false;\n                    });\n                    go_login_thread ();\n                } else if (last_status == 1) {\n                    debug (\"go_start: Hamachi is successfully started, but not configured\");\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        connection_stopped ();\n                        init ();\n                        return false;\n                    });\n                } else if (output != \"\" && !output.contains (\"Request dismissed\")) {\n                    debug (\"go_start: Failed to start Hamachi, showing output\");\n                    restore = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        connection_stopped ();\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                } else {\n                    debug (\"go_start: Failed to start Hamachi, no output to show - user might have canceled sudo dialog\");\n                    restore = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        connection_stopped ();\n                        win.show_toast (_(\"Error connecting\"));\n                        return false;\n                    });\n                }\n\n                start_output = null;\n                return null;\n            });\n        }\n\n        private static void* go_login_thread () {\n            string output = Hamachi.login ();\n\n            if (output.contains (\".. ok\") || output.contains (\"Already logged in\")) { // Ok, logged in\n                debug (\"go_login_thread: Connected!\");\n                last_status = 6;\n\n                Thread.usleep (2000000); // Wait two seconds to get updated info and list\n\n                Hamachi.get_info ();\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    get_network_list ();\n                    return false;\n                });\n            } else {\n                debug (\"go_login_thread: Error connecting\");\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    connection_stopped ();\n                    win.show_toast (_(\"Hamachi login failed\"));\n                    return false;\n                });\n            }\n\n            return null;\n        }\n\n        public static void connection_established () {\n            win.set_mode (\"Connected\");\n            win.sidebar.update ();\n\n            // Update protocol if needed\n            var protocol = config.get_string (\"protocol\");\n            if (Hamachi.ip_version.down () != protocol) {\n                new Thread<void*> (null, () => {\n                    Hamachi.set_protocol (protocol);\n                    return null;\n                });\n            }\n\n            // Set nick after login\n            new Thread<void*> (null, () => {\n                Thread.usleep (2000000);\n                Hamachi.set_nick (Utils.parse_nick (config.get_string (\"nickname\")));\n                return null;\n            });\n\n            restore = behavior.get_boolean (\"reconnect-on-connection-loss\");\n            num_update_cycles ++;\n            update_cycle ();\n        }\n\n        public static void connection_stopped () {\n            if (restore) {\n                win.network_list.save_state ();\n            }\n            win.set_disconnected_stack_page (\"empty\");\n            win.set_mode (\"Disconnected\");\n\n            // Stop update interval\n            continue_update = false;\n\n            if (restore) {\n                if (last_status == 2) {\n                    wait_for_internet_cycle ();\n                } else {\n                    restore_connection_cycle ();\n                }\n            }\n\n            if (!demo_mode) {\n                connection.clear_networks ();\n            }\n\n            last_status = 4;\n        }\n\n        private static void get_network_list () {\n            Hamachi.get_list ();\n            connection.networks = Hamachi.return_networks ();\n            win.network_list.fill_tree ();\n            connection_established ();\n        }\n\n        public static void update_connection () {\n            manual_update = true;\n            update_connection_timeout ();\n        }\n\n        private static bool update_connection_timeout () {\n            debug (\"update_connection_timeout: Number of active update cycles: %s\", num_update_cycles.to_string ());\n\n            if (!manual_update && num_update_cycles > 1) {\n                num_update_cycles --;\n                return false;\n            }\n\n            if (continue_update) {\n                debug (\"update_connection: Retrieving connection status...\");\n\n                win.window_title.subtitle = _(\"Updating\");\n\n                new Thread<void*> (null, update_connection_thread);\n            } else {\n                num_update_cycles --;\n            }\n\n            return false;\n        }\n\n        private static void* update_connection_thread () {\n            status_check ();\n\n            if (last_status >= 6) {\n                old_list = Hamachi.last_list;\n                Hamachi.get_list ();\n\n                if (old_list != Hamachi.last_list) {\n                    new_networks_list = Hamachi.return_networks ();\n                }\n            }\n\n            if (continue_update) {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    update_list ();\n                    win.sidebar.update ();\n                    return false;\n                });\n            } else {\n                num_update_cycles --;\n            }\n\n            return null;\n        }\n\n        private static void update_list () {\n            if (last_status == 2) {\n                debug (\"update_list: Internet connection lost\");\n                connection_stopped ();\n                num_update_cycles --;\n            } else if (last_status < 6) {\n                debug (\"update_list: Hamachi connection lost\");\n                // Display connection lost notification only if window is not currently focused\n                if (!(win.visible && win.is_active)) {\n                    notify_connection_lost ();\n                }\n                connection_stopped ();\n                num_update_cycles --;\n            } else if (last_status >= 6) {\n                // We are still connected\n                if (demo_mode) {\n                    debug (\"update_list: Demo mode, not really updating list\");\n                    win.network_list.sort ();\n                    win.network_list.refilter ();\n                } else if (old_list == Hamachi.last_list) {\n                    debug (\"update_list: Connected, list not changed\");\n                } else {\n                    debug (\"update_list: Connected, updating list\");\n\n                    members_left_hash    = new HashTable<string, MemberEvent>(str_hash, str_equal);\n                    members_online_hash  = new HashTable<string, MemberEvent>(str_hash, str_equal);\n                    members_offline_hash = new HashTable<string, MemberEvent>(str_hash, str_equal);\n                    members_joined_hash  = new HashTable<string, MemberEvent>(str_hash, str_equal);\n\n                    HashTable<string, Network> old_networks_hash = new HashTable<string, Network>(str_hash, str_equal);\n                    foreach (Network old_network in connection.networks) {\n                        old_networks_hash.insert (old_network.id, old_network);\n                    }\n\n                    HashTable<string, Network> new_networks_hash = new HashTable<string, Network>(str_hash, str_equal);\n                    foreach (Network new_network in new_networks_list) {\n                        new_networks_hash.insert (new_network.id, new_network);\n                    }\n\n                    old_networks_hash.foreach ((old_network_id, old_network) => {\n                        if (!new_networks_hash.contains (old_network.id)) {\n                            // Network not in new list, removing...\n                            connection.remove_network (old_network);\n                        }\n                    });\n\n                    new_networks_hash.foreach ((new_network_id, new_network) => {\n                        if (old_networks_hash.contains (new_network.id)) {\n                            // Network in new and old list, updating...\n                            Network old_network = (Network) old_networks_hash.get (new_network.id);\n                            old_network.update (new_network.status, new_network.name);\n\n                            // Check all network members\n                            HashTable<string, Member> old_members_hash = new HashTable<string, Member>(str_hash, str_equal);\n\n                            foreach (Member old_member in old_network.members) {\n                                old_members_hash.insert (old_member.id, old_member);\n                            }\n\n                            HashTable<string, Member> new_members_hash = new HashTable<string, Member>(str_hash, str_equal);\n\n                            foreach (Member new_member in new_network.members) {\n                                new_members_hash.insert (new_member.id, new_member);\n                            }\n\n                            old_members_hash.foreach ((old_member_id, old_member) => {\n                                if (!new_members_hash.contains (old_member.id)) {\n                                    // Member not in new list, removing...\n                                    old_network.remove_member (old_member);\n\n                                    if ((old_member.status.status_int < 3 ) &&\n                                        (!old_member.is_evicted)) {\n                                        add_member_to_hash (members_left_hash, old_member, old_network);\n                                    }\n                                }\n                            });\n\n                            new_members_hash.foreach ((new_member_id, new_member) => {\n                                if (old_members_hash.contains (new_member.id)) {\n                                    // Member in old and new list, updating...\n                                    Member old_member = (Member) old_members_hash [new_member.id];\n\n                                    if ((old_member.status.status_int == 0) &&\n                                        (new_member.status.status_int == 1)) {\n                                        add_member_to_hash (members_online_hash, old_member, old_network);\n                                    }\n\n                                    if ((old_member.status.status_int == 1) &&\n                                        (new_member.status.status_int == 0)) {\n                                        add_member_to_hash (members_offline_hash, old_member, old_network);\n                                    }\n\n                                    old_member.update (new_member.status, new_member.ipv4, new_member.ipv6, new_member.nick, new_member.tunnel);\n                                } else {\n                                    // Member not in old list, adding...\n                                    old_network.add_member (new_member);\n                                    new_member.network = old_network;\n                                    new_member.init ();\n\n                                    add_member_to_hash (members_joined_hash, new_member, old_network);\n                                }\n                            });\n\n                            old_network.set_label_markup ();\n                        } else {\n                            // Network not in old list, adding...\n                            connection.add_network (new_network);\n                        }\n                    });\n\n                    win.network_list.sort ();\n                    win.network_list.refilter ();\n\n                    notify_members_joined ();\n                    notify_members_left ();\n                    notify_members_online ();\n                    notify_members_offline ();\n                }\n\n                if (manual_update) {\n                    manual_update = false;\n                    num_update_cycles ++;\n                }\n\n                // Continue update interval\n\n                update_cycle ();\n\n                win.window_title.subtitle = _(\"Connected\");\n            }\n        }\n\n        private static void add_member_to_hash (HashTable<string, MemberEvent> hash, Member member, Network network) {\n            MemberEvent member_event = new MemberEvent (member.id, member.known_name);\n\n            if (hash.contains (member.id)) {\n                member_event = (MemberEvent) hash.get (member.id);\n            }\n\n            member_event.add_network (network.name);\n\n            if (member.status.status_int == 3) {\n                member_event.add_network_approval (network.id);\n            }\n\n            hash.replace (member.id, member_event);\n        }\n\n        public static void wait_for_internet_cycle () {\n            num_wait_for_internet_cycles ++;\n\n            new Thread<void*> (null, () => {\n                Thread.usleep (2000000);\n\n                if (num_wait_for_internet_cycles > 1) {\n                    // Do nothing\n                } else if (!restore) {\n                    // Do nothing\n                } else if (has_internet_connection ()) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        start_hamachi ();\n                        return false;\n                    });\n                } else {\n                    debug (\"wait_for_internet_cycle: Waiting for internet connection...\");\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        wait_for_internet_cycle ();\n                        return false;\n                    });\n                }\n\n                num_wait_for_internet_cycles --;\n\n                return null;\n            });\n        }\n\n        public static void restore_connection_cycle () {\n            debug (\"restore_connection_cycle: Trying to reconnect...\");\n\n            restore_countdown = config.get_int (\"reconnect-interval\");\n            win.set_restore_countdown (restore_countdown);\n            win.set_disconnected_stack_page (\"restore\");\n            Timeout.add (1000, restore_connection);\n        }\n\n        private static bool restore_connection () {\n            if (restore && restore_countdown > 0) {\n                restore_countdown --;\n\n                if (restore_countdown == 0) {\n                    start_hamachi ();\n                } else {\n                    win.set_restore_countdown (restore_countdown);\n                    return true;\n                }\n            }\n\n            return false;\n        }\n\n        public static bool update_cycle () {\n            continue_update = true;\n\n            uint interval = (uint) (1000 * config.get_int (\"update-interval\"));\n            if (interval > 0) {\n                Timeout.add (interval, update_connection_timeout);\n            } else {\n                Timeout.add (1000, update_cycle);\n            }\n\n            return false;\n        }\n\n        public static void notify_connection_lost () {\n            if (notifications.get_boolean (\"connection-loss\")) {\n                Bubble bubble = new Bubble (_(\"Hamachi Lost Connection\"), null);\n                bubble.add_reconnect_action ();\n                bubble.show ();\n            }\n        }\n\n        public static void notify_members_joined () {\n            members_joined_hash.foreach ((member_id, member_event) => {\n                notify_member_joined (member_event.name,\n                                      member_event.first_network_name,\n                                      member_event.networks_length - 1,\n                                      member_event.id,\n                                      member_event.get_network_approval_ids ());\n            });\n        }\n\n        public static void notify_member_joined (string nick, string network, int more, string client_id, string[] network_approval_ids) {\n            if (notifications.get_boolean (\"member-join\")) {\n                var bubble = compose_bubble (\n                    _(\"Member Joined\"),\n                    // Notification bubble. For example: \"T-800 joined the network Skynet\".\n                    _(\"{0} joined the network {1}\"),\n                    // Notification bubble. For example: \"T-800 joined the network Skynet and 1 other network\".\n                    ngettext (\"{0} joined the network {1} and {2} other network\",\n                              \"{0} joined the network {1} and {2} other networks\",\n                              more),\n                    nick,\n                    network,\n                    more);\n\n                if (network_approval_ids.length > 0) {\n                    bubble.add_approve_reject_actions (client_id, network_approval_ids);\n                }\n\n                bubble.show ();\n            }\n        }\n\n        public static void notify_members_left () {\n            members_left_hash.foreach ((member_id, member_event) => {\n                notify_member_left (member_event.name,\n                                    member_event.first_network_name,\n                                    member_event.networks_length - 1);\n            });\n        }\n\n        public static void notify_member_left (string nick, string network, int more) {\n            if (notifications.get_boolean (\"member-leave\")) {\n                var bubble = compose_bubble (\n                    _(\"Member Left\"),\n                    // Notification bubble. For example: \"T-800 left the network Skynet\".\n                    _(\"{0} left the network {1}\"),\n                    // Notification bubble. For example: \"T-800 left the network Skynet and 1 other network\".\n                    ngettext (\"{0} left the network {1} and {2} other network\",\n                              \"{0} left the network {1} and {2} other networks\",\n                              more),\n                    nick,\n                    network,\n                    more);\n\n                bubble.show ();\n            }\n        }\n\n        public static void notify_members_online () {\n            members_online_hash.foreach ((member_id, member_event) => {\n                notify_member_online (member_event.name,\n                                      member_event.first_network_name,\n                                      member_event.networks_length - 1);\n            });\n        }\n\n        public static void notify_member_online (string nick, string network, int more) {\n            if (notifications.get_boolean (\"member-online\")) {\n                var bubble = compose_bubble (\n                    _(\"Member Online\"),\n                    // Notification bubble. For example: \"T-800 came online in the network Skynet\".\n                    _(\"{0} came online in the network {1}\"),\n                    // Notification bubble. For example: \"T-800 came online in the network Skynet and 1 other network\".\n                    ngettext (\"{0} came online in the network {1} and {2} other network\",\n                              \"{0} came online in the network {1} and {2} other networks\",\n                              more),\n                    nick,\n                    network,\n                    more);\n\n                bubble.show ();\n            }\n        }\n\n        public static void notify_members_offline () {\n            members_offline_hash.foreach ((member_id, member_event) => {\n                notify_member_offline (member_event.name,\n                                       member_event.first_network_name,\n                                       member_event.networks_length - 1);\n            });\n        }\n\n        public static void notify_member_offline (string nick, string network, int more) {\n            if (notifications.get_boolean (\"member-offline\")) {\n                var bubble = compose_bubble (\n                    _(\"Member Offline\"),\n                    // Notification bubble. For example: \"T-800 went offline in the network Skynet\".\n                    _(\"{0} went offline in the network {1}\"),\n                    // Notification bubble. For example: \"T-800 went offline in the network Skynet and 1 other network\".\n                    ngettext (\"{0} went offline in the network {1} and {2} other network\",\n                              \"{0} went offline in the network {1} and {2} other networks\",\n                              more),\n                    nick,\n                    network,\n                    more);\n\n                bubble.show ();\n            }\n        }\n\n        public static Bubble compose_bubble (\n            string heading,\n            string message_one,\n            string message_more,\n            string nick,\n            string network,\n            int more) {\n\n            var message = more > 0 ? message_more : message_one;\n                message = message.replace (\"{0}\", nick);\n                message = message.replace (\"{1}\", network);\n                message = message.replace (\"{2}\", more.to_string ());\n\n            return new Bubble (heading, message);\n        }\n\n        public static void quit () {\n            if (last_status > 4 && behavior.get_boolean (\"disconnect-on-quit\")) {\n                stop_hamachi ();\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/custom-command.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class CustomCommand : Object {\n        public string is_active;\n        public string is_default;\n        public string label;\n        public string cmd_ipv4;\n        public string cmd_ipv6;\n        public string priority;\n\n        public CustomCommand (string _is_active, string _is_default, string _label, string _cmd_ipv4, string _cmd_ipv6, string _priority) {\n            is_active  = _is_active;\n            is_default = _is_default;\n            label      = _label;\n            cmd_ipv4   = _cmd_ipv4;\n            cmd_ipv6   = _cmd_ipv6;\n            priority   = _priority;\n        }\n\n        public bool exists () {\n            return Command.exists (Command.replace_variables (cmd_ipv4, \"\", \"\", \"\")) ||\n                   Command.exists (Command.replace_variables (cmd_ipv6, \"\", \"\", \"\"));\n        }\n\n        public bool enabled_for_member (Member member) {\n            // Enabled if member is online or command doesn't use address variable\n            return member.status.status_int == 1 || (!cmd_ipv4.contains (\"%A\") && !cmd_ipv6.contains (\"%A\"));\n        }\n\n        public string return_for_member (Member member) {\n            string command = \"\";\n            string address = \"\";\n\n            if (Hamachi.ip_version == \"Both\") {\n                if (priority == \"IPv4\") {\n                    command = (member.ipv4 != null) ? cmd_ipv4    : cmd_ipv6;\n                    address = (member.ipv4 != null) ? member.ipv4 : member.ipv6;\n                }\n                if (priority == \"IPv6\") {\n                    command = (member.ipv6 != null) ? cmd_ipv6    : cmd_ipv4;\n                    address = (member.ipv6 != null) ? member.ipv6 : member.ipv4;\n                }\n            } else if (Hamachi.ip_version == \"IPv4\") {\n                command = cmd_ipv4;\n                address = member.ipv4;\n            } else if (Hamachi.ip_version == \"IPv6\") {\n                command = cmd_ipv6;\n                address = member.ipv6;\n            }\n\n            return Command.replace_variables (command, address, member.nick, member.id);\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/add-edit-command.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/dialogs/add-edit-command.ui\")]\n    public class AddEditCommandDialog : Adw.Dialog {\n        private string mode;\n        private CommandsEditor editor;\n\n        [GtkChild]\n        unowned Gtk.Button save_button;\n\n        [GtkChild]\n        unowned Adw.EntryRow label_entry;\n\n        [GtkChild]\n        unowned CommandEntryRow command_ipv4_entry;\n        [GtkChild]\n        unowned CommandEntryRow command_ipv6_entry;\n\n        [GtkChild]\n        unowned Adw.ActionRow priority;\n#if ADW_1_7 && !FOR_ELEMENTARY\n        private Adw.ToggleGroup priority_group;\n        private Adw.Toggle priority_ipv4;\n        private Adw.Toggle priority_ipv6;\n#else\n        private Gtk.CheckButton priority_ipv4;\n        private Gtk.CheckButton priority_ipv6;\n#endif\n\n        construct {\n#if ADW_1_7 && !FOR_ELEMENTARY\n            priority_ipv4 = new Adw.Toggle () {\n                label = name = \"IPv4\"\n            };\n            priority_ipv6 = new Adw.Toggle () {\n                label = name = \"IPv6\"\n            };\n\n            priority_group = new Adw.ToggleGroup () {\n                valign = Gtk.Align.CENTER\n            };\n            priority_group.add (priority_ipv4);\n            priority_group.add (priority_ipv6);\n\n            priority.add_suffix (priority_group);\n#else\n            priority_ipv4 = new Gtk.CheckButton () {\n                label  = \"IPv4\",\n                valign = Gtk.Align.CENTER\n            };\n            priority_ipv6 = new Gtk.CheckButton () {\n                group  = priority_ipv4,\n                label  = \"IPv6\",\n                valign = Gtk.Align.CENTER\n            };\n\n            priority.add_suffix (priority_ipv4);\n            priority.add_suffix (priority_ipv6);\n#endif\n        }\n\n        public AddEditCommandDialog (string _mode, CommandsEditor _editor, string label, string command_ipv4, string command_ipv6, string priority) {\n            mode   = _mode;\n            editor = _editor;\n\n            title = (mode == \"Edit\") ? _(\"Edit Command\") : _(\"Add Command\");\n\n            label_entry.text = label;\n\n            command_ipv4_entry.text = command_ipv4;\n            command_ipv6_entry.text = command_ipv6;\n\n#if ADW_1_7 && !FOR_ELEMENTARY\n            priority_group.active_name = priority;\n#else\n            priority_ipv4.active = (priority == \"IPv4\");\n            priority_ipv6.active = (priority == \"IPv6\");\n#endif\n\n            set_state ();\n\n            present (_editor);\n        }\n\n        [GtkCallback]\n        private void save_command () {\n#if ADW_1_7 && !FOR_ELEMENTARY\n            var ip_mode = priority_group.active_name;\n#else\n            var ip_mode = priority_ipv6.active ? \"IPv6\" : \"IPv4\";\n#endif\n            if (mode == \"Edit\") {\n                editor.update_selected_command (label_entry.text, command_ipv4_entry.text, command_ipv6_entry.text, ip_mode);\n            } else {\n                editor.insert_command (label_entry.text, command_ipv4_entry.text, command_ipv6_entry.text, ip_mode);\n            }\n\n            close ();\n        }\n\n        [GtkCallback]\n        private void set_state () {\n            var ipv4 = command_ipv4_entry.text.length;\n            var ipv6 = command_ipv6_entry.text.length;\n#if ADW_1_7 && !FOR_ELEMENTARY\n            priority_ipv4.enabled = ipv4 > 0;\n            priority_ipv6.enabled = ipv6 > 0;\n#else\n            priority_ipv4.sensitive = ipv4 > 0;\n            priority_ipv6.sensitive = ipv6 > 0;\n#endif\n            if (ipv4 == 0 && ipv6 > 0) {\n#if ADW_1_7 && !FOR_ELEMENTARY\n                priority_group.active_name = \"IPv6\";\n#else\n                priority_ipv6.active = true;\n#endif\n            } else if (ipv4 > 0 && ipv6 == 0) {\n#if ADW_1_7 && !FOR_ELEMENTARY\n                priority_group.active_name = \"IPv4\";\n#else\n                priority_ipv4.active = true;\n#endif\n            }\n\n            save_button.sensitive = label_entry.text.length > 0 && (ipv4 > 0 || ipv6 > 0);\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/attach.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/dialogs/attach.ui\")]\n    public class AttachDialog : Adw.Dialog {\n        [GtkChild]\n        unowned Gtk.Revealer revealer;\n        [GtkChild]\n        unowned Gtk.Label message_label;\n\n        [GtkChild]\n        unowned Gtk.Button attach_button;\n\n        [GtkChild]\n        unowned Adw.EntryRow account_entry;\n        [GtkChild]\n        unowned Adw.SwitchRow include_networks_switch;\n\n        [GtkCallback]\n        private void attach () {\n            set_buttons_sensitivity (false);\n\n            new Thread<void*> (null, () => {\n                string account = account_entry.text;\n                string output;\n\n                if (demo_mode) {\n                    if (account.contains (\"@\")) {\n                        output = \".. ok\";\n                        Hamachi.demo_account = account + \" (pending)\";\n                    } else if (account.contains (\"#\")) {\n                        output = \".. failed\";\n                    } else if (account.contains (\"!\")) {\n                        output = \"\";\n                    } else {\n                        output = \".. failed, not found\";\n                    }\n                } else {\n                    output = Hamachi.attach (account, include_networks_switch.active);\n                }\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    if (output.contains (\".. ok\")) {\n                        win.sidebar.set_account (account + \" (pending)\");\n                        win.show_toast (_(\"Attach request sent\"));\n                        close ();\n                    } else {\n                        set_buttons_sensitivity (true);\n\n                        if (output.contains (\".. failed, not found\") ||\n                            output.contains (\".. failed, [248]\")) {\n                            account_entry.add_css_class (\"error\");\n                            account_entry.grab_focus_without_selecting ();\n                            show_message (_(\"Account not found\"));\n                        } else {\n                            show_message (output.strip ());\n                        }\n                    }\n\n                    return false;\n                });\n\n                return null;\n            });\n        }\n\n        [GtkCallback]\n        private void entry_changed () {\n            dismiss_message ();\n            account_entry.remove_css_class (\"error\");\n            attach_button.sensitive = account_entry.text.length > 0;\n        }\n\n        private void set_buttons_sensitivity (bool sensitive) {\n            attach_button.sensitive = sensitive;\n        }\n\n        private void show_message (string message) {\n            if (message != \"\") {\n                revealer.reveal_child = true;\n                message_label.label = message;\n            }\n        }\n\n        private void dismiss_message () {\n            revealer.reveal_child = false;\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/change-access.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/dialogs/change-access.ui\")]\n    public class ChangeAccessDialog : Adw.Dialog {\n        private Network network;\n\n        [GtkChild]\n        unowned Adw.SwitchRow locked;\n        [GtkChild]\n        unowned Adw.ComboRow approval;\n\n        public ChangeAccessDialog (Network _network) {\n            network = _network;\n\n            locked.active      = network.lock_state == \"locked\";\n            approval.sensitive = network.lock_state == \"unlocked\";\n            approval.selected  = network.approve == \"manual\" ? 1 : 0;\n        }\n\n        [GtkCallback]\n        private void change_access () {\n            network.updating = true;\n            network.lock_state = locked.active ? \"locked\" : \"unlocked\";\n            network.approve = approval.selected == 1 ? \"manual\" : \"auto\";\n\n            win.sidebar.set_network (network);\n\n            new Thread<void*> (null, () => {\n                Hamachi.set_access (network.id, locked.active ? \"lock\" : \"unlock\", network.approve);\n                network.updating = false;\n\n                return null;\n            });\n\n            close ();\n        }\n\n        [GtkCallback]\n        private void lock_changed () {\n            approval.sensitive = !locked.active;\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/change-password.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/dialogs/change-password.ui\")]\n    public class ChangePasswordDialog : Adw.Dialog {\n        private Network network;\n\n        [GtkChild]\n        unowned Adw.EntryRow password_entry;\n\n        public ChangePasswordDialog (Network _network) {\n            network = _network;\n        }\n\n        [GtkCallback]\n        private void change_password () {\n            new Thread<void*> (null, () => {\n                Hamachi.set_password (network.id, password_entry.text);\n\n                return null;\n            });\n\n            close ();\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/confirm.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class ConfirmDialog : Object {\n        public signal void confirm ();\n\n        public ConfirmDialog (Gtk.Widget parent,\n                              string heading,\n                              string body,\n                              string confirm_label,\n                              Adw.ResponseAppearance response_appearance) {\n\n            var dialog = new Adw.AlertDialog (heading, body);\n\n            dialog.add_response (\"cancel\", _(\"_Cancel\"));\n            dialog.add_response (\"confirm\", confirm_label);\n\n            dialog.set_response_appearance (\"confirm\", response_appearance);\n\n            dialog.default_response = \"confirm\";\n            dialog.close_response   = \"cancel\";\n\n            dialog.response.connect ((dialog, response) => {\n                if (response == \"confirm\") {\n                    confirm ();\n                }\n            });\n\n            if (parent == win) {\n                win.show_dialog (dialog);\n            } else {\n                dialog.present (parent);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/dialogs/join-create-network.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/dialogs/join-create-network.ui\")]\n    public class JoinCreateNetworkDialog : Adw.Dialog {\n        private string mode;\n\n        [GtkChild]\n        unowned Gtk.Revealer revealer;\n        [GtkChild]\n        unowned Gtk.Label message_label;\n\n        [GtkChild]\n        unowned Gtk.Button add_button;\n\n        [GtkChild]\n        unowned Adw.EntryRow id_entry;\n        [GtkChild]\n        unowned Adw.PasswordEntryRow password_entry;\n\n        public JoinCreateNetworkDialog (string _mode) {\n            mode  = _mode;\n            title = (mode == \"Join\") ? _(\"Join Network\") : _(\"Create Network\");\n\n            add_button.label = (mode == \"Join\") ? _(\"_Join\") : _(\"C_reate\");\n        }\n\n        [GtkCallback]\n        private void add_network () {\n            set_buttons_sensitivity (false);\n            if (mode == \"Join\") {\n                new Thread<void*> (null, go_join_thread);\n            } else {\n                new Thread<void*> (null, go_create_thread);\n            }\n        }\n\n        private void* go_join_thread () {\n            string id       = id_entry.text;\n            string password = password_entry.text;\n            string output;\n\n            if (demo_mode) {\n                if (id == \"not found\") {\n                    output = \".. failed, network not found\";\n                } else if (id == \"invalid password\") {\n                    output = \".. failed, invalid password\";\n                } else if (id == \"full\") {\n                    output = \".. failed, the network is full\";\n                } else if (id == \"joined\") {\n                    output = \".. failed, you are already a member\";\n                } else if (id == \"failed\") {\n                    output = \".. failed\";\n                } else  {\n                    output = \".. ok, request sent\";\n                }\n            } else {\n                output = Hamachi.join_network (id, password);\n            }\n\n            if (output.contains (\".. ok, request sent\")) {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    win.show_toast (_(\"Join request sent\"));\n                    close ();\n                    return false;\n                });\n            } else if (output.contains (\".. ok\")) {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    close ();\n                    return false;\n                });\n\n                // Wait a second to get an updated list\n                Thread.usleep (1000000);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    win.network_list.select_network_id = id;\n                    Controller.update_connection ();\n                    return false;\n                });\n            } else {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    set_buttons_sensitivity (true);\n\n                    if (output.contains (\".. failed, network not found\")) {\n                        id_entry.add_css_class (\"error\");\n                        id_entry.grab_focus_without_selecting ();\n                        show_message (_(\"Network not found\"));\n                    } else if (output.contains (\".. failed, invalid password\")) {\n                        password_entry.add_css_class (\"error\");\n                        password_entry.grab_focus_without_selecting ();\n                        show_message (_(\"Invalid password\"));\n                    } else if (output.contains (\".. failed, the network is full\")) {\n                        show_message (_(\"Network is full\"));\n                    } else if (output.contains (\".. failed, network is locked\")) {\n                        show_message (_(\"Network is locked\"));\n                    } else if (output.contains (\".. failed, you are already a member\") ||\n                               output.contains (\".. failed, you are an owner\")) {\n                        show_message (_(\"Network already joined\"));\n                    } else {\n                        show_message (output.strip ());\n                    }\n\n                    return false;\n                });\n            }\n\n            return null;\n        }\n\n        private void* go_create_thread () {\n            string id       = id_entry.text;\n            string password = password_entry.text;\n            string output;\n\n            if (demo_mode) {\n                if (id == \"taken\") {\n                    output = \".. failed, network name is already taken\";\n                } else if (id == \"failed\") {\n                    output = \".. failed\";\n                } else  {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        close ();\n\n                        Network new_network = new Network (new Status (\"*\"), id, id, \"This computer\", 5);\n\n                        win.network_list.select_network_id = id;\n                        connection.add_network (new_network);\n                        Controller.update_connection ();\n\n                        return false;\n                    });\n\n                    return null;\n                }\n            } else {\n                output = Hamachi.create_network (id, password);\n            }\n\n            if (output.contains (\".. ok\")) {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    close ();\n                    return false;\n                });\n\n                // Wait a second to get an updated list\n                Thread.usleep (1000000);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    win.network_list.select_network_id = id;\n                    Controller.update_connection ();\n                    return false;\n                });\n            } else {\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    set_buttons_sensitivity (true);\n\n                    if (output.contains (\".. failed, network name is already taken\")) {\n                        id_entry.add_css_class (\"error\");\n                        id_entry.grab_focus_without_selecting ();\n                        show_message (_(\"Network ID is already taken\"));\n                    } else {\n                        show_message (output.strip ());\n                    }\n\n                    return false;\n                });\n            }\n\n            return null;\n        }\n\n        [GtkCallback]\n        private void entry_changed () {\n            dismiss_message ();\n\n            id_entry.remove_css_class (\"error\");\n            password_entry.remove_css_class (\"error\");\n\n            // Network name must be between 4 and 64 characters long\n            add_button.sensitive = (id_entry.text.length >= 4 && id_entry.text.length <= 64);\n        }\n\n        private void set_buttons_sensitivity (bool sensitive) {\n            add_button.sensitive = sensitive;\n        }\n\n        private void show_message (string message) {\n            if (message != \"\") {\n                revealer.reveal_child = true;\n                message_label.label = message;\n            }\n        }\n\n        private void dismiss_message () {\n            revealer.reveal_child = false;\n        }\n    }\n}\n"
  },
  {
    "path": "src/hamachi.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Hamachi : Object {\n        public  const  string DAEMON_PATH = \"/opt/logmein-hamachi/bin/hamachid\";\n        public  const  string DATA_PATH   = \"/var/lib/logmein-hamachi\";\n        public  const  string CONFIG_PATH = DATA_PATH + \"/h2-engine-override.cfg\";\n\n        public  static string version;\n        public  static string ip_version;\n        public  static string demo_account;\n        public  static string last_info;\n        public  static string last_list;\n        public  static string service;\n\n        public static void init () {\n            ip_version   = \"\";\n            demo_account = \"-\";\n\n            get_info ();\n            determine_version ();\n            determine_service ();\n        }\n\n        private static void determine_version () {\n            version = \"\";\n\n            if (demo_mode) {\n                version = \"2.1.0.203\";\n                return;\n            }\n\n            if (!(Command.hamachi_binary_exists || Command.hamachi_use_daemon)) {\n                return;\n            }\n\n            version = retrieve (last_info, \"version\");\n\n            if (version.has_prefix (\"hamachi-lnx-\")) {\n                version = version.replace (\"hamachi-lnx-\", \"\");\n            }\n\n            if (version != \"\") {\n                debug (\"determine_version: Hamachi %s detected\", version);\n                return;\n            }\n\n            string output = Command.return_output (\"hamachi -h\");\n\n            if (output == \"\") {\n                output = Command.return_output (\"stdbuf -o0 hamachi -h\"); // Adjust stdout stream buffering\n            }\n\n            if (output == \"\") {\n                debug (\"determine_version: No output\");\n                return;\n            }\n\n            debug (\"determine_version: %s\", output);\n\n            if (output.contains (\"Hamachi, a zero-config virtual private networking utility, ver \")) {\n                try {\n                    MatchInfo mi;\n                    new Regex (\"Hamachi, a zero-config virtual private networking utility, ver (.+)\").match (output, 0, out mi);\n\n                    version = mi.fetch (1);\n                } catch (RegexError e) {\n                    critical (\"determine_version: %s\", e.message);\n                }\n            }\n\n            if (version != \"\") {\n                debug (\"determine_version: Hamachi %s detected\", version);\n                return;\n            }\n\n            debug (\"determine_version: Unknown version\");\n        }\n\n        private static void determine_service () {\n            service = \"\";\n\n            var settings = new Settings (Config.APP_ID + \".commands\");\n            string init_system = settings.get_string (\"init-system\");\n\n            if (init_system == \"systemctl\" ||\n                (init_system == \"auto\" &&\n                 Utils.path_exists (\"d\", \"/run/systemd/system\") &&\n                 Command.exists (\"systemctl\") &&\n                 systemctl_unit_found ())) {\n                // Systemd\n                service = \"systemctl %s logmein-hamachi.service\";\n            }\n            else if (init_system == \"init.d\" ||\n                     (init_system == \"auto\" &&\n                      Utils.path_exists (\"f\", \"/etc/init.d/logmein-hamachi\"))) {\n                // Sysvinit\n                service = \"/etc/init.d/logmein-hamachi %s\";\n            }\n            else if (init_system == \"rc.d\" ||\n                     (init_system == \"auto\" &&\n                      Utils.path_exists (\"f\", \"/etc/rc.d/logmein-hamachi\"))) {\n                // BSD style init\n                service = \"/etc/rc.d/logmein-hamachi %s\";\n            }\n            else if (init_system == \"none\" ||\n                     (init_system == \"auto\" &&\n                      Utils.path_exists (\"f\", DAEMON_PATH))) {\n                // Run Hamachi daemon directly\n                service = DAEMON_PATH;\n            }\n\n            debug (\"determine_service %s: %s\", init_system, service);\n        }\n\n        private static bool systemctl_unit_found () {\n            bool found = true;\n\n            string output = Command.return_output (\"systemctl status logmein-hamachi.service\");\n            debug (\"systemctl_unit_found output: %s\", output);\n\n            if (output.contains (\"Loaded: not-found\") ||\n                output.contains (\"Unit logmein-hamachi.service could not be found.\")) {\n                found = false;\n            }\n\n            debug (\"systemctl_unit_found result: %s\", found.to_string ());\n            return found;\n        }\n\n        public static string retrieve (string? output, string nfo) {\n            if (output == null) {\n                return \"\";\n            }\n\n            string retrieved = null;\n\n            try {\n                MatchInfo mi;\n                new Regex (nfo + \"[ ]*:[ ]+(.+)\").match (output, 0, out mi);\n\n                retrieved = mi.fetch (1);\n            } catch (RegexError e) {\n                critical (\"retrieve: %s\", e.message);\n            }\n\n            if (retrieved == null) {\n                return \"\";\n            }\n\n            return retrieved;\n        }\n\n        public static void configure () {\n            new Thread<void*> (null, () => {\n                string output = Command.return_output (\"%s %sbash -c \\\"%s; %s; killall -9 hamachid &> /dev/null; echo \\'Ipc.User      %s\\' >> %s; %s\\\"\".printf (\n                                                       Command.sudo,\n                                                       Command.sudo_start,\n                                                       service.printf (\"start\"),\n                                                       service.printf (\"stop\"),\n                                                       Environment.get_user_name (),\n                                                       CONFIG_PATH,\n                                                       service.printf (\"start\")));\n                debug (\"configure: %s\", output);\n\n                // Wait a second to let Hamachi settle\n                Thread.usleep (1000000);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    Controller.init ();\n                    return false;\n                });\n\n                return null;\n            });\n        }\n\n        public static string start () {\n            string output = Command.return_output (\"%s %s%s\".printf (Command.sudo, Command.sudo_start, service.printf (\"restart\")));\n            debug (\"start: %s\", output);\n\n            // Wait a second to let Hamachi settle\n            Thread.usleep (1000000);\n\n            return output;\n        }\n\n        public static string login () {\n            string output = Command.return_output (\"hamachi login\");\n            debug (\"login: %s\", output);\n\n            return output;\n        }\n\n        public static string logout () {\n            string output = Command.return_output (\"hamachi logout\");\n\n            debug (\"logout: %s\", output);\n            return output;\n        }\n\n        public static string get_account () {\n            if (demo_mode) {\n                return demo_account;\n            }\n\n            string output = retrieve (last_info, \"lmi account\");\n\n            debug (\"get_account: %s\", output);\n            return output;\n        }\n\n        public static string get_client_id () {\n            if (demo_mode) {\n                return \"090-123-456\";\n            }\n\n            string output = retrieve (last_info, \"client id\");\n\n            debug (\"get_client_id: %s\", output);\n            return output;\n        }\n\n        public static string[] get_address () {\n            if (demo_mode) {\n                ip_version = \"Both\";\n                return new string[] {\"25.123.456.78\", \"2620:9b::56d:f78e\"};\n            }\n\n            string ipv4 = null;\n            string ipv6 = null;\n\n            string ouput = retrieve (last_info, \"address\");\n\n            try {\n                MatchInfo mi;\n                new Regex (\"\"\"^(?<ipv4>[0-9\\.]{7,15})?[ ]*(?<ipv6>[0-9a-f\\:]{6,39})?$\"\"\").match (ouput, 0, out mi);\n\n                ipv4 = mi.fetch_named (\"ipv4\");\n                ipv6 = mi.fetch_named (\"ipv6\");\n\n                debug (\"get_address ipv4: %s\", ipv4);\n                debug (\"get_address ipv6: %s\", ipv6);\n            } catch (RegexError e) {\n                critical (\"get_address: %s\", e.message);\n            }\n\n            if (ipv4 == \"\") {\n                ipv4 = null;\n            }\n\n            if (ipv6 == \"\") {\n                ipv6 = null;\n            }\n\n            if (ipv4 != null && ipv6 != null) {\n                ip_version = \"Both\";\n            } else if (ipv4 != null) {\n                ip_version = \"IPv4\";\n            } else if (ipv6 != null) {\n                ip_version = \"IPv6\";\n            }\n\n            debug (\"get_address: IP version: %s\", ip_version);\n\n            return new string[] {ipv4, ipv6};\n        }\n\n        public static string get_info () {\n            if (!demo_mode && (Command.hamachi_binary_exists || Command.hamachi_use_daemon)) {\n                last_info = Command.return_output (\"hamachi\");\n                debug (\"get_info: %s\", last_info);\n            }\n\n            return last_info;\n        }\n\n        public static bool go_online (Network network) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi go-online \\\"%s\\\"\".printf (Utils.clean_string (network.id)));\n                debug (\"go_online: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    success = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return success;\n        }\n\n        public static bool go_offline (Network network) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi go-offline \\\"%s\\\"\".printf (Utils.clean_string (network.id)));\n                debug (\"go_offline: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    success = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return success;\n        }\n\n        public static bool delete (Network network) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi delete \\\"%s\\\"\".printf (Utils.clean_string (network.id)));\n                debug (\"delete: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    success = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return success;\n        }\n\n        public static bool leave (Network network) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi leave \\\"%s\\\"\".printf (Utils.clean_string (network.id)));\n                debug (\"leave: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    success = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return success;\n        }\n\n        public static bool approve (Member member) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi approve \\\"%s\\\" %s\".printf (Utils.clean_string (member.network.id), member.id));\n                debug (\"approve: %s\", output);\n\n                if (output.contains (\".. failed\")) {\n                    success = false;\n                }\n            }\n\n            return success;\n        }\n\n        public static bool reject (Member member) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi reject \\\"%s\\\" %s\".printf (Utils.clean_string (member.network.id), member.id));\n                debug (\"reject: %s\", output);\n\n                if (output.contains (\".. failed\")) {\n                    success = false;\n                }\n            }\n\n            return success;\n        }\n\n        public static bool evict (Member member) {\n            bool success = true;\n\n            if (!demo_mode) {\n                string output = Command.return_output (\"hamachi evict \\\"%s\\\" %s\".printf (Utils.clean_string (member.network.id), member.id));\n                debug (\"evict: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    success = false;\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return success;\n        }\n\n        public static string random_address () {\n            string address  = \"25.\";\n                   address += Random.int_range (1, 255).to_string ();\n                   address += \".\";\n                   address += Random.int_range (1, 255).to_string ();\n                   address += \".\";\n                   address += Random.int_range (1, 255).to_string ();\n\n            return address;\n        }\n\n        public static string random_client_id () {\n            string id  = \"0\";\n                   id += Random.int_range (80, 99).to_string ();\n                   id += \"-\";\n                   id += Random.int_range (100, 999).to_string ();\n                   id += \"-\";\n                   id += Random.int_range (100, 999).to_string ();\n\n            return id;\n        }\n\n        public static string random_network_id () {\n            string id  = \"0\";\n                   id += Random.int_range (40, 45).to_string ();\n                   id += \"-\";\n                   id += Random.int_range (100, 999).to_string ();\n                   id += \"-\";\n                   id += Random.int_range (100, 999).to_string ();\n\n            return id;\n        }\n\n        public static string get_list () {\n            string output = \"\";\n\n            if (demo_mode) {\n                if (last_list != null) {\n                    return last_list;\n                } else if (demo_list_path != null) {\n                    output = Command.return_output (\"cat \" + demo_list_path);\n                } else {\n                    output += \" * [Artwork]  capacity: 3/5, subscription type: Free, owner: ztefn (090-736-821)\\n\";\n                    output += \"       \" + random_client_id () + \"   Lapo                       \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     * 090-736-821   ztefn                                      \" + random_address () + \"  alias: not set        2146:0d::987:a654    direct\\n\";\n                    output += \"   [Bug Hunters]  capacity: 4/5,   [192.168.155.24/24]  subscription type: Free, owner: This computer\\n\";\n                    output += \"     x \" + random_client_id () + \"   Eduardo                    192.168.155.21\\n\";\n                    output += \"     * \" + random_client_id () + \"   freijon                    192.168.155.22  alias: not set                             direct\\n\";\n                    output += \"     ? 094-139-744 \\n\";\n                    output += \"       You are approaching your member limit and may soon have to upgrade your network.\\n\";\n                    output += \" * [\" + random_network_id () + \"]  Development  capacity: 2/32, subscription type: Standard, owner: ztefn (090-736-821)\\n\";\n                    output += \"     * 090-736-821   ztefn                                      \" + random_address () + \"  alias: not set        2146:0d::987:a654    direct\\n\";\n                    output += \"   [\" + random_network_id () + \"]Packaging  capacity: 4/256, subscription type: Premium, owner: Andrew (094-409-761)\\n\";\n                    output += \"     * 094-409-761   Andrew                                     \" + random_address () + \"  alias: not set                             via relay\\n\";\n                    output += \"     * \" + random_client_id () + \"   carstene1ns                \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"       \" + random_client_id () + \"   etamPL                     \" + random_address () + \"\\n\";\n                    output += \" * [\" + random_network_id () + \"]Translators  capacity: 18/256, subscription type: Multi-network, owner: translators@haguichi.net\\n\";\n                    output += \"     x \" + random_client_id () + \"   Aytunç                     \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   Brbla                      \" + random_address () + \"  alias: not set                             via relay\\n\";\n                    output += \"       \" + random_client_id () + \"   Daniel                     \" + random_address () + \"\\n\";\n                    output += \"     ! \" + random_client_id () + \"   dimitrov                   \" + random_address () + \"  alias: not set                             IP protocol mismatch between you and peer\\n\";\n                    output += \"     * \" + random_client_id () + \"   enolp                      \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"       \" + random_client_id () + \"   enricog                    \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   fitojb                     \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   Fedik                      \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     * \" + random_client_id () + \"   galamarv                   \" + random_address () + \"  alias: not set                             via relay\\n\";\n                    output += \"       \" + random_client_id () + \"   ryonakano                  \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   Jean-Marc                  \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     ! \" + random_client_id () + \"   jmb_kz                     \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     x \" + random_client_id () + \"   Ḷḷumex03                   \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   Moo                        \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     * \" + random_client_id () + \"   piotrdrag                  \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     * \" + random_client_id () + \"   Rodrigo                    \" + random_address () + \"  alias: not set                             via relay\\n\";\n                    output += \"     ! \" + random_client_id () + \"   scrawl                     \" + random_address () + \"  alias: 25.353.432.28  2620:9b::753:b470    direct      UDP  170.45.240.141:43667  This address is also used by another peer\\n\";\n                    output += \"       \" + random_client_id () + \"   Sergey                     \" + random_address () + \"\\n\";\n                    output += \"     x \" + random_client_id () + \"   Soker                      \" + random_address () + \"\\n\";\n                    output += \"     * \" + random_client_id () + \"   Zdeněk                     \" + random_address () + \"  alias: not set                             direct\\n\";\n                    output += \"     * \" + random_client_id () + \"   ztefn                      \" + random_address () + \"  alias: not set        2146:0d::987:a654    direct\\n\";\n                }\n            } else {\n                output = Command.return_output (\"hamachi list\");\n                debug (\"get_list:\\n%s\", output);\n            }\n\n            last_list = output;\n            return last_list;\n        }\n\n        public static List<Network> return_networks () {\n            List<Network> networks = new List<Network> ();\n\n            string[] split = last_list.split (\"\\n\");\n            Network cur_network = null;\n\n            try {\n                int64 start_time = get_real_time ();\n\n                Regex network_regex_part1     = new Regex (\"\"\"^ (?<status>.{1}) \\[(?<id>[0-9-]{11}|.+)\\][ ]*(?<name>.*?)[ ]*$\"\"\");\n                Regex network_regex_part2     = new Regex (\"\"\"^(capacity: [0-9]{1,3}/(?<capacity>[0-9]{1,3}),)?[ ]*(\\[(?<subnet>[0-9\\./]{9,19})\\])?[ ]*( subscription type: (?<subscription>[^,]+),)?( owner: (?<owner>.*))?$\"\"\");\n                Regex normal_member_regex     = new Regex (\"\"\"^     (?<status>.{1}) (?<id>[0-9-]{11})[ ]+(?<nick>.*?)[ ]*(?<ipv4>[0-9\\.]{7,15})?[ ]*(alias: (?<alias>not set|[0-9\\.]{7,15}))?[ ]*(?<ipv6>[0-9a-f\\:]{6,39})?[ ]*(?<connection>direct|via relay|via server)?[ ]*(?<transport>UDP|TCP)?[ ]*(?<tunnel>[0-9\\.]{7,15}\\:[0-9]{1,5})?[ ]*(?<message>[ a-zA-Z]+)?$\"\"\");\n                Regex unapproved_member_regex = new Regex (\"\"\"^     \\? (?<id>[0-9-]{11})[ ]*$\"\"\");\n\n                foreach (string s in split) {\n                    // Check string for minimum chars\n                    if (s.length > 5) {\n                        // Line contains network\n                        if (s.index_of (\"[\") == 3) {\n                            int index = s.last_index_of (\"capacity: \");\n\n                            string part1 = s.substring (0, index);\n                            string part2 = s.substring (index, -1);\n\n                            MatchInfo mi1; network_regex_part1.match (part1, RegexMatchFlags.NOTEMPTY, out mi1);\n                            MatchInfo mi2; network_regex_part2.match (part2, RegexMatchFlags.NOTEMPTY, out mi2);\n\n                            string id       = mi1.fetch_named (\"id\");\n                            string name     = mi1.fetch_named (\"name\");\n                            string owner    = mi2.fetch_named (\"owner\");\n                            string capacity = mi2.fetch_named (\"capacity\");\n                            Status status   = new Status (mi1.fetch_named (\"status\"));\n\n                            if (name == \"\") {\n                                name = id;\n                            }\n\n                            int capacity_int = 0;\n                            if (capacity != null) {\n                                capacity_int = int.parse (capacity);\n                            }\n\n                            Network network = new Network (status, id, name, owner, capacity_int);\n                            networks.append (network);\n\n                            cur_network = network;\n                        } else if (s.index_of (\"?\") == 5) {\n                            // Line contains unapproved member\n                            MatchInfo mi;\n                            unapproved_member_regex.match (s, RegexMatchFlags.NOTEMPTY, out mi);\n\n                            string id     = mi.fetch_named (\"id\");\n                            string nick   = _(\"Unknown\");\n                            Status status = new Status (\"?\");\n\n                            Member member = new Member (status, cur_network, null, null, nick, id, null);\n\n                            cur_network.add_member (member);\n                        } else if (s.index_of (\"-\") == 10) {\n                            // Line contains normal member\n\n                            // UTF-8 multibyte characters in long nicknames may get cut off in the network list.\n                            // Therefore by calling the make_valid string function, bytes that could not be\n                            // interpreted as valid Unicode are replaced with the Unicode replacement character (U+FFFD).\n                            s = s.make_valid ();\n\n                            MatchInfo mi;\n                            normal_member_regex.match (s, RegexMatchFlags.NOTEMPTY, out mi);\n\n                            string id         = mi.fetch_named (\"id\");\n                            string nick       = mi.fetch_named (\"nick\");\n                            string ipv4       = mi.fetch_named (\"ipv4\");\n                            string ipv6       = mi.fetch_named (\"ipv6\");\n                            string alias      = mi.fetch_named (\"alias\");\n                            string tunnel     = mi.fetch_named (\"tunnel\");\n                            string connection = mi.fetch_named (\"connection\");\n                            string message    = mi.fetch_named (\"message\");\n                            Status status     = new Status.complete (mi.fetch_named (\"status\"), connection, message);\n\n                            if (nick == \"\" || nick == \"anonymous\") {\n                                nick = _(\"Anonymous\");\n                            }\n\n                            if (ipv4 == \"\") {\n                                ipv4 = null;\n                            }\n\n                            if (ipv6 == \"\") {\n                                ipv6 = null;\n                            }\n\n                            if (alias != null && alias.contains (\".\")) {\n                                ipv4 = alias;\n                                ipv6 = null; // IPv6 address doesn't work when the alias is set, therefore clearing it\n                            }\n\n                            if (tunnel == \"\") {\n                                tunnel = null;\n                            }\n\n                            Member member = new Member (status, cur_network, ipv4, ipv6, nick, id, tunnel);\n\n                            cur_network.add_member (member);\n                        }\n                    }\n                }\n\n                debug (\"return_networks: Parsed network list in %s microseconds\".printf ((get_real_time () - start_time).to_string ()));\n            } catch (RegexError e) {\n                critical (\"return_networks: %s\", e.message);\n            }\n\n            return networks;\n        }\n\n        public static string set_nick (string nick) {\n            string output = \"\";\n\n            if (!demo_mode) {\n                output = Command.return_output (\"hamachi set-nick \\\"%s\\\"\".printf (Utils.clean_string (nick)));\n                debug (\"set_nick: %s\", output);\n            }\n\n            return output;\n        }\n\n        public static string set_protocol (string protocol) {\n            string output = \"\";\n\n            if (!demo_mode) {\n                output = Command.return_output (\"hamachi set-ip-mode \\\"%s\\\"\".printf (protocol));\n                debug (\"set_protocol: %s\", output);\n            }\n\n            return output;\n        }\n\n        public static string attach (string account_id, bool with_networks) {\n            string output  = \"\";\n            string command = \"attach\";\n\n            if (with_networks) {\n                command += \"-net\";\n            }\n\n            output = Command.return_output (\"hamachi %s \\\"%s\\\"\".printf (command, Utils.clean_string (account_id)));\n            debug (\"attach: %s\", output);\n\n            return output;\n        }\n\n        public static string cancel () {\n            string output = \"\";\n\n            if (demo_mode) {\n                demo_account = \"-\";\n            } else {\n                output = Command.return_output (\"hamachi cancel\");\n                debug (\"cancel: %s\", output);\n            }\n\n            return output;\n        }\n\n        public static string join_network (string name, string password) {\n            string output = Command.return_output (\"hamachi do-join \\\"%s\\\" \\\"%s\\\"\".printf (Utils.clean_string (name), Utils.clean_string (password)));\n            debug (\"join_network: %s\", output);\n\n            return output;\n        }\n\n        public static string set_access (string network_id, string locking, string approve) {\n            string output = \"\";\n\n            if (!demo_mode) {\n                output = Command.return_output (\"hamachi set-access \\\"%s\\\" %s %s\".printf (Utils.clean_string (network_id), locking, approve));\n                debug (\"set_access: %s\", output);\n\n                if (!output.contains (\".. ok\")) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        win.show_toast (output.strip ());\n                        return false;\n                    });\n                }\n            }\n\n            return output;\n        }\n\n        public static string set_password (string network_id, string password) {\n            string output = \"\";\n\n            if (!demo_mode) {\n                // Call with timeout because this command frequently hangs\n                output = Command.return_output_with_timeout (1, \"hamachi set-pass \\\"%s\\\" \\\"%s\\\"\".printf (Utils.clean_string (network_id), Utils.clean_string (password)));\n                debug (\"set_password: %s\", output);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    if (output.has_suffix (\" ..\")) {\n                        warning (\"set_password: command hanged, restarting hamachi...\");\n                        win.network_list.save_state ();\n                        win.show_toast (_(\"Password changed\"));\n                        Controller.restart_hamachi ();\n                    } else if (output.contains (\".. ok\")) {\n                        win.show_toast (_(\"Password changed\"));\n                    } else {\n                        win.show_toast (output.strip ());\n                    }\n\n                    return false;\n                });\n            }\n\n            return output;\n        }\n\n        public static string create_network (string name, string password) {\n            string output = Command.return_output (\"hamachi create \\\"%s\\\" \\\"%s\\\"\".printf (Utils.clean_string (name), Utils.clean_string (password)));\n            debug (\"create_network: %s\", output);\n\n            return output;\n        }\n\n        public static void save_config (string path, Adw.PreferencesDialog dialog) {\n            new Thread<void*> (null, () => {\n                var save_toast = new Adw.Toast (_(\"Saving backup…\")) {\n                    timeout = 0\n                };\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    dialog.add_toast (save_toast);\n                    return false;\n                });\n\n                // Wait a second to show toast for minimum amount of time\n                Thread.usleep (1000000);\n\n                string output = Command.return_output (\"tar -cavPf '%s' %s\".printf (path, DATA_PATH));\n                debug (\"save_config: %s\", output);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    save_toast.dismiss ();\n                    dialog.add_toast (new Adw.Toast (output.contains (DATA_PATH) ? _(\"Backup saved\") : _(\"Failed to save backup\")));\n                    return false;\n                });\n\n                return null;\n            });\n        }\n\n        public static void restore_config (string path, Adw.PreferencesDialog dialog) {\n            new Thread<void*> (null, () => {\n                string output = Command.return_output (\"tar -tvf '%s'\".printf (path));\n                debug (\"restore_config: Listing archive contents...\\n%s\", output);\n\n                if (output.contains (DATA_PATH)) {\n                    var restore_toast = new Adw.Toast (_(\"Restoring backup…\")) {\n                        timeout = 0\n                    };\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        dialog.add_toast (restore_toast);\n                        Controller.stop_hamachi ();\n                        return false;\n                    });\n\n                    string working_path = path;\n\n                    // When running inside Flatpak sandbox we create temporary copy of the file within the home directory so it's accessible as super user,\n                    // otherwise we get a permission error when trying to access /run/user/1000/doc/xxxxxxxx/etc\n                    if (Xdp.Portal.running_under_flatpak ()) {\n                        working_path = \"/home/%s/.hamachi-config-restore\".printf (Environment.get_user_name ());\n\n                        debug (\"restore_config: Creating temporary file at %s...\", working_path);\n                        Command.return_output (\"cp %s %s\".printf (path, working_path));\n                    }\n\n                    output = Command.return_output (\"%s %sbash -c \\\"%s; %s; killall -9 hamachid &> /dev/null; rm %s/*; tar -xavf '%s' -C /; %s\\\"\".printf (\n                                                    Command.sudo,\n                                                    Command.sudo_start,\n                                                    service.printf (\"start\"),\n                                                    service.printf (\"stop\"),\n                                                    DATA_PATH,\n                                                    working_path,\n                                                    service.printf (\"start\")));\n                    debug (\"restore_config: %s\", output);\n\n                    // Remove temporary copy of the file\n                    if (Xdp.Portal.running_under_flatpak ()) {\n                        debug (\"restore_config: Removing temporary file at %s...\", working_path);\n                        Command.return_output (\"rm \" + working_path);\n                    }\n\n                    // Wait a second to let Hamachi settle\n                    Thread.usleep (1000000);\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        Controller.init ();\n                        restore_toast.dismiss ();\n                        dialog.add_toast (new Adw.Toast (output.contains (DATA_PATH) ? _(\"Backup restored\") : _(\"Failed to restore backup\")));\n                        return false;\n                    });\n                } else {\n                    debug (\"restore_config: Archive doesn't contain %s\", DATA_PATH);\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        dialog.add_toast (new Adw.Toast (_(\"Archive does not contain expected files\")));\n                        return false;\n                    });\n                }\n\n                return null;\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "src/indicator.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nusing Config;\n\nnamespace Haguichi {\n    public class Indicator {\n        private Menu   menu;\n        private int    icon_num;\n        private string icon_postfix;\n\n        public StatusNotifierItem item;\n\n        public Indicator () {\n            // Only on specific desktops we use symbolic icons\n            if (current_desktop.contains (\"GNOME\") ||\n                current_desktop == \"COSMIC\" ||\n                current_desktop == \"MATE\" ||\n                current_desktop == \"Pantheon\" ||\n                current_desktop == \"X-Cinnamon\") {\n                icon_postfix = \"-symbolic\";\n            }\n\n            item = new StatusNotifierItem () {\n                id        = APP_ID + \".indicator\",\n                category  = \"ApplicationStatus\",\n                title     = APP_NAME,\n                icon_name = APP_ID + \"-disconnected\" + icon_postfix,\n                status    = \"Active\",\n                is_menu   = true,\n            };\n            item.scroll.connect ((delta, orientation) => {\n                debug (\"scroll delta %d, orientation %s\", delta, orientation);\n                if (orientation.down () != \"vertical\") return;\n\n                // Show window when scrolling up and hide it when scrolling down\n                if (delta < 0) {\n                    win.present ();\n                } else {\n                    win.hide ();\n                }\n            });\n            item.notify[\"host-registered\"].connect (() => {\n                if (item.host_registered) {\n                    item.register ();\n                }\n            });\n\n            item.init ();\n        }\n\n        public bool active {\n            get {\n                return item.status == \"Active\";\n            }\n            set {\n                if (value) {\n                    item.register ();\n                }\n                item.status = (value == true) ? \"Active\" : \"Passive\";\n            }\n        }\n\n        private string icon_name {\n            get {\n                return item.icon_name;\n            }\n            set {\n                item.icon_name = APP_ID + \"-\" + value + icon_postfix;\n            }\n        }\n\n        public void update_status (string mode, bool modal, bool visible) {\n            set_icon (mode);\n\n            var status_text = (mode == \"Connected\") ? _(\"Connected\") : (mode == \"Connecting\") ? _(\"Connecting\") : _(\"Disconnected\");\n            item.tool_tip = { APP_ID, {}, APP_NAME, status_text };\n\n            // For available properties see:\n            // https://github.com/AyatanaIndicators/libdbusmenu/blob/master/libdbusmenu-glib/dbus-menu.xml\n\n            menu = new Menu ();\n\n            var show = new MenuItem (_(\"_Show Haguichi\"), \"app.toggle-window\");\n            show.set_attribute_value (\"toggle-type\", \"checkmark\");\n            show.set_attribute_value (\"toggle-state\", (int) visible);\n            show.set_attribute_value (\"enabled\", !modal);\n            menu.append_item (show);\n\n            var separator = new MenuItem (null, null);\n            separator.set_attribute_value (\"type\", \"separator\");\n            menu.append_item (separator);\n\n            if (mode.down ().contains (\"connect\")) {\n                var connect = new MenuItem ((mode == \"Connected\") ? _(\"_Disconnect\") : _(\"C_onnect\"),\n                                            (mode == \"Connected\") ? \"app.disconnect\" : \"app.connect\");\n                connect.set_attribute_value (\"enabled\", (!modal && mode != \"Connecting\"));\n                set_menu_item_icon_name (connect, \"network-\" + (mode == \"Connected\" ? \"disconnect\" : \"connect\"));\n                menu.append_item (connect);\n\n                menu.append_item (separator);\n\n                var join = new MenuItem (_(\"_Join Network…\"), \"app.join-network\");\n                join.set_attribute_value (\"enabled\", !modal && mode == \"Connected\");\n                set_menu_item_icon_name (join, \"list-add\");\n                menu.append_item (join);\n\n                var create = new MenuItem (_(\"_Create Network…\"), \"app.create-network\");\n                create.set_attribute_value (\"enabled\", !modal && mode == \"Connected\");\n                set_menu_item_icon_name (create, \"list-add\");\n                menu.append_item (create);\n\n                menu.append_item (separator);\n\n                var info = new MenuItem (_(\"_Information\"), \"app.info\");\n                info.set_attribute_value (\"enabled\", !modal);\n                set_menu_item_icon_name (info, \"documentinfo\");\n                menu.append_item (info);\n\n                menu.append_item (separator);\n            }\n\n            var quit = new MenuItem (_(\"_Quit\"), \"app.quit\");\n            set_menu_item_icon_name (quit, \"application-exit\");\n            menu.append_item (quit);\n\n            item.menu_model = menu;\n        }\n\n        private void set_menu_item_icon_name (MenuItem menu_item, string icon_name) {\n            // Only on KDE icons seems to be commonly used with menu items\n            if (current_desktop == \"KDE\") {\n                menu_item.set_attribute_value (\"icon-name\", icon_name);\n            }\n        }\n\n        private void set_icon (string mode) {\n            // Check if there isn't already an animation going on when connecting\n            if (mode == \"Connecting\" && icon_name.contains (\"-connecting-\")) {\n                return;\n            }\n\n            icon_num = 0;\n\n            switch (mode) {\n                case \"Connecting\":\n                    Timeout.add (400, switch_icon);\n                    break;\n                case \"Connected\":\n                    icon_name = \"connected\";\n                    break;\n                default:\n                    icon_name = \"disconnected\";\n                    break;\n            }\n        }\n\n        private bool switch_icon () {\n            // Stop animation when not connecting anymore\n            if (win.get_mode () != \"Connecting\") {\n                return false;\n            }\n\n            switch (icon_num) {\n                case 0:\n                    icon_name = \"connecting-1\";\n                    icon_num = 1;\n                    break;\n                case 1:\n                    icon_name = \"connecting-2\";\n                    icon_num = 2;\n                    break;\n                default:\n                    icon_name = \"connecting-3\";\n                    icon_num = 0;\n                    break;\n            }\n\n            return true;\n        }\n    }\n}\n"
  },
  {
    "path": "src/inhibitor.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [DBus (name = \"org.freedesktop.login1.Manager\")]\n    public interface LogindManager : DBusProxy {\n        public signal void prepare_for_sleep (bool before);\n        public abstract UnixInputStream inhibit (string what, string who, string why, string mode) throws Error;\n    }\n\n    public class Inhibitor : Object {\n        private LogindManager manager;\n        private UnixInputStream lock_file = null;\n\n        public Inhibitor () {\n            try {\n                // Connect to the logind manager on the system bus: https://www.freedesktop.org/wiki/Software/systemd/logind/\n                manager = Bus.get_proxy_sync (BusType.SYSTEM, \"org.freedesktop.login1\", \"/org/freedesktop/login1\");\n            } catch (IOError e) {\n                critical (\"manager: %s\", e.message);\n            }\n\n            manager.prepare_for_sleep.connect ((before) => {\n                if (before) {\n                    debug (\"Preparing for sleep\");\n\n                    // Only restore connection after wake up if currently connected or already marked to do so\n                    if (Controller.restore || Controller.last_status >= 6) {\n                        debug (\"Stopping connection\");\n\n                        // Abort any pending connection restore cycle and make sure we don't trigger a new one either\n                        Controller.restore_countdown = 0;\n                        Controller.restore = false;\n\n                        // It's now safe to call the following method\n                        Controller.connection_stopped ();\n\n                        // And don't forget the most important bit!\n                        Hamachi.logout ();\n\n                        // Finally, mark the connection to be restored again after wake up\n                        Controller.restore = true;\n                    }\n\n                    release ();\n                } else {\n                    debug (\"Waking up\");\n\n                    if (Controller.restore) {\n                        // Restore the connection when internet is available again\n                        Controller.wait_for_internet_cycle ();\n                    }\n\n                    acquire ();\n                }\n            });\n\n            acquire ();\n        }\n\n        public void release () {\n            debug (\"Releasing inhibit lock\");\n\n            if (lock_file != null) {\n                try {\n                    lock_file.close ();\n                } catch (IOError e) {\n                    critical (\"release: %s\", e.message);\n                } finally {\n                    lock_file = null;\n                }\n            }\n        }\n\n        public void acquire () {\n            debug (\"Acquiring inhibit lock\");\n\n            try {\n                lock_file = manager.inhibit (\"sleep\", \"Haguichi\", \"Properly disconnect\", \"delay\");\n            } catch (Error e) {\n                critical (\"acquire: %s\", e.message);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/member-event.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\npublic class MemberEvent {\n    public  string   id;\n    public  string   name;\n    private string[] network_approval_ids;\n    private string[] network_names;\n\n    public MemberEvent (string _id, string _name) {\n        id                   = _id;\n        name                 = _name;\n        network_approval_ids = {};\n        network_names        = {};\n    }\n\n    public void add_network (string network_name) {\n        network_names += network_name;\n    }\n\n    public void add_network_approval (string network_id) {\n        network_approval_ids += network_id;\n    }\n\n    public string[] get_network_approval_ids () {\n        return network_approval_ids;\n    }\n\n    public string first_network_name {\n        get {\n            return network_names[0];\n        }\n    }\n\n    public int networks_length {\n        get {\n            return network_names.length;\n        }\n    }\n}\n"
  },
  {
    "path": "src/member.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Member : Object {\n        private ConfirmDialog dialog;\n        private string new_nick;\n\n        public Status   status;\n        public Network  network;\n        public string   ipv4;\n        public string   ipv6;\n        public string   nick;\n        public string   id;\n        public string   tunnel;\n \n        public string   label             { get; private set; }\n        public string[] node_css_classes  { get; private set; }\n        public string[] label_css_classes { get; private set; }\n \n        public string   name_sort_string;\n        public string   status_sort_string;\n \n        public bool     is_owner;\n        public bool     is_evicted;\n\n        public Member (Status _status, Network _network, string? _ipv4, string? _ipv6, string? _nick, string _id, string? _tunnel) {\n            status  = _status;\n            network = _network;\n            ipv4    = _ipv4;\n            ipv6    = _ipv6;\n            nick    = _nick;\n            id      = _id;\n            tunnel  = _tunnel;\n\n            set_label_markup ();\n            set_row_css_classes ();\n            set_sort_strings ();\n\n            is_evicted = false;\n        }\n\n        public void init () {\n            get_long_nick (nick, true);\n        }\n\n        public void update (Status _status, string? _ipv4, string? _ipv6, string? _nick, string? _tunnel) {\n            status = _status;\n            ipv4   = _ipv4;\n            ipv6   = _ipv6;\n            tunnel = _tunnel;\n\n            set_row_css_classes ();\n\n            get_long_nick (_nick, false);\n        }\n\n        public string known_name {\n            get {\n                return (nick == _(\"Unknown\")) ? id : nick;\n            }\n        }\n\n        public void set_label_markup () {\n            string name = Markup.escape_text (known_name).replace (\"%\", \"{PERCENTSIGN}\");\n\n            string template = win.network_list.member_label_template;\n            template = template.replace (\"%ID\",  id);\n            template = template.replace (\"%N\",   name);\n            template = template.replace (\"%A\",   (ipv4   != null && ipv6 != null) ? ipv4 + \" / \" + ipv6 : (ipv4 != null) ? ipv4 : (ipv6 != null) ? ipv6 : \"\");\n            template = template.replace (\"%IP4\", (ipv4   != null) ? ipv4   : \"\");\n            template = template.replace (\"%IP6\", (ipv6   != null) ? ipv6   : \"\");\n            template = template.replace (\"%TUN\", (tunnel != null) ? tunnel : \"\");\n            template = template.replace (\"%S\",   status.status_text);\n            template = template.replace (\"%CX\",  status.connection_type);\n            template = template.replace (\"<br>\", \"\\n\");\n\n            if (is_owner) {\n                template = template.replace (\"%*\",   \"★\");\n                template = template.replace (\"%_*\", \" ★\");\n                template = template.replace (\"%*_\", \"★ \");\n            } else {\n                template = template.replace (\"%*\",  \"\");\n                template = template.replace (\"%_*\", \"\");\n                template = template.replace (\"%*_\", \"\");\n            }\n\n            label = template.replace (\"{PERCENTSIGN}\", \"%\");\n        }\n\n        public void set_row_css_classes () {\n            node_css_classes  = new string[] {\"network-node\", status.get_css_classes ()};\n            label_css_classes = new string[] {\"member-label\", status.status_int == 0 ? \"dim-label\" : \"\"};\n        }\n\n        public void set_sort_strings () {\n            name_sort_string   = network.name_sort_string   + \"0\" + known_name + id;\n            status_sort_string = network.status_sort_string + \"0\" + status.status_sortable + nick + id;\n        }\n\n        private void get_long_nick (string _nick, bool _init) {\n            new_nick = _nick;\n\n            if (_init == false && new_nick.length >= 25 && nick.length >= 25 && nick.has_prefix (new_nick.replace (\"�\", \"\"))) {\n                // Long nick has already been retrieved and is probably not altered, since the first 25 characters are identical\n            }\n            else if (new_nick.length >= 25) {\n                string cached_nick = get_long_nick_from_cache ();\n\n                if (cached_nick != null) {\n                    // If we got a long nick from cache then use it\n                    nick = cached_nick;\n                } else {\n                    // If not then get long nick from Hamachi\n                    try {\n                        this.ref ();\n                        member_threads.add (this);\n                    } catch (ThreadError e) {\n                        this.unref ();\n                        critical (\"get_long_nick: %s\", e.message);\n                    }\n                }\n            } else {\n                // Save passed nick\n                nick = new_nick;\n            }\n\n            set_label_markup ();\n            set_sort_strings ();\n        }\n\n        public void get_long_nick_thread () {\n            try {\n                // First try the cache again, because an other thread might have retrieved it already for the same member in a different network\n                string cached_nick = get_long_nick_from_cache ();\n\n                if (cached_nick != null) {\n                    nick = cached_nick;\n                } else {\n                    // Okay, really retrieve it from Hamachi now\n                    string output = Command.return_output (\"hamachi peer %s\".printf (id));\n                    debug (\"get_long_nick_thread: %s\", output);\n\n                    string _nick = Hamachi.retrieve (output, \"nickname\");\n                    if (_nick != \"\") {\n                        nick = _nick;\n                    }\n\n                    // Add retrieved long nick to the cache\n                    connection.add_long_nick (id, nick);\n                }\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    set_label_markup ();\n                    set_sort_strings ();\n\n                    // Update sidebar with new nick when selected\n                    if (win.network_list.get_selected_item () == this) {\n                        win.sidebar.set_member (this);\n                    }\n                    return false;\n                });\n            } finally {\n                this.unref ();\n            }\n        }\n\n        private string get_long_nick_from_cache () {\n            string _nick = null;\n\n            if (connection.has_long_nick (id) && connection.get_long_nick (id).has_prefix (new_nick.replace (\"�\", \"\"))) {\n                _nick = connection.get_long_nick (id);\n                debug (\"get_long_nick_from_cache: Retrieved long nick for client %s from cache: %s\", id, _nick);\n            }\n\n            return _nick;\n        }\n\n        public void approve () {\n            new Thread<void*> (null, () => {\n                bool success = Hamachi.approve (this);\n\n                if (success) {\n                    // Wait a second to get an updated list\n                    Thread.usleep (1000000);\n\n                    Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                        if (demo_mode) {\n                            update (new Status (\"*\"), \"192.168.155.23\", null, \"Nick\", null);\n                            win.sidebar.set_member (this);\n                        }\n\n                        Controller.update_connection ();\n                        return false;\n                    });\n                }\n\n                return null;\n            });\n        }\n\n        public void reject () {\n            new Thread<void*> (null, () => {\n                bool success = Hamachi.reject (this);\n\n                if (success) {\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        network.remove_member (this);\n                        return false;\n                    });\n\n                    // Wait a second to get an updated list\n                    Thread.usleep (1000000);\n\n                    Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                        Controller.update_connection ();\n                        return false;\n                    });\n                }\n\n                return null;\n            });\n        }\n\n        public void evict () {\n            var heading = _(\"Are you sure you want to evict member “{0}” from network “{1}”?\").replace (\"{0}\", nick).replace (\"{1}\", network.name);\n            var body    = _(\"If admitted, evicted members can rejoin the network at any later time.\");\n\n            dialog = new ConfirmDialog (win, heading, body, _(\"_Evict\"), Adw.ResponseAppearance.DESTRUCTIVE);\n            dialog.confirm.connect (() => {\n                is_evicted = true;\n\n                new Thread<void*> (null, () => {\n                    bool success = Hamachi.evict (this);\n\n                    if (success) {\n                        Idle.add_full (Priority.HIGH_IDLE, () => {\n                            network.remove_member (this);\n                            return false;\n                        });\n\n                        // Wait a second to get an updated list\n                        Thread.usleep (1000000);\n\n                        Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                            Controller.update_connection ();\n                            return false;\n                        });\n                    }\n\n                    return null;\n                });\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "src/meson.build",
    "content": "config = configure_file(\n          input: 'config.vala.in',\n         output: 'config.vala',\n  configuration: conf\n)\n\nsources = [\n  'application.vala',\n  'bubble.vala',\n  'command.vala',\n  'connection.vala',\n  'controller.vala',\n  'custom-command.vala',\n  'dialogs/add-edit-command.vala',\n  'dialogs/attach.vala',\n  'dialogs/change-access.vala',\n  'dialogs/change-password.vala',\n  'dialogs/confirm.vala',\n  'dialogs/join-create-network.vala',\n  'hamachi.vala',\n  'indicator.vala',\n  'inhibitor.vala',\n  'member.vala',\n  'member-event.vala',\n  'network.vala',\n  'network-list.vala',\n  'preferences.vala',\n  'session.vala',\n  'sidebar.vala',\n  'status.vala',\n  'status-notifier-item.vala',\n  'utils.vala',\n  'widgets/command-entry-row.vala',\n  'widgets/command-variable-button.vala',\n  'widgets/commands-editor.vala',\n  'widgets/commands-editor-row.vala',\n  'widgets/sidebar-row.vala',\n  'widgets/sidebar-page.vala',\n  'widgets/throbber.vala',\n  'window.vala',\n]\n\ndeps = [\n  dependency('gee-0.8',        version: '>= 0.20.6'),\n  dependency('gio-unix-2.0',   version: '>= 2.80'),\n  dependency('gtk4',           version: '>= 4.14'),\n  dependency('libadwaita-1',   version: '>= 1.5'),\n  dependency('libportal',      version: '>= 0.7.1'),\n  dependency('libportal-gtk4', version: '>= 0.7.1'),\n]\n\nadw_version = dependency('libadwaita-1').version()\n\nforeach minor_version : ['6', '7', '8']\n  if adw_version.version_compare('>= 1.' + minor_version)\n    add_project_arguments(\n      ['-D', 'ADW_1_' + minor_version],\n      language: 'vala'\n    )\n  endif\nendforeach\n\nif get_option('for-elementary')\n  deps += dependency('granite-7')\n  add_project_arguments(\n    ['-D', 'FOR_ELEMENTARY'],\n    language: 'vala'\n  )\nendif\n\nif get_option('for-ubuntu')\n  add_project_arguments(\n    ['-D', 'FOR_UBUNTU'],\n    language: 'vala'\n  )\nendif\n\nexecutable(binary_name, config, sources, resources,\n  dependencies: deps,\n       install: true,\n)\n"
  },
  {
    "path": "src/network-list.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nusing Gtk;\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/network-list.ui\")]\n    public class NetworkList : Adw.Bin {\n        [GtkChild]\n        private unowned ScrolledWindow scrolled_window;\n        [GtkChild]\n        private unowned ListView list_view;\n\n        private GLib.Settings   settings;\n        private GLib.ListStore  store;\n        private Sorter          sorter;\n        private Filter          filter;\n        private TreeListModel   tree_list_model;\n        private SortListModel   sort_model;\n        private FilterListModel filter_model;\n        private SingleSelection selection_model;\n        private PopoverMenu     list_view_popover_menu;\n        private PopoverMenu     network_popover_menu;\n        private PopoverMenu     member_popover_menu;\n        private Menu            member_menu_model;\n\n        private bool   commands_menu_present = false;\n        private bool   skip_save_collapsed_networks;\n        private bool   show_offline_members;\n        private string sort_by;\n\n        public string  network_label_template;\n        public string  member_label_template;\n        public string  restore_search_text;\n        public string  select_member_id;\n        public string  select_network_id;\n\n        construct {\n            install_action (\"row.context-menu\",        null, (WidgetActionActivateFunc) on_context_menu);\n            install_action (\"row.collapse\",            null, (WidgetActionActivateFunc) on_collapse_row);\n            install_action (\"row.expand\",              null, (WidgetActionActivateFunc) on_expand_row);\n            install_action (\"row.delete\",              null, (WidgetActionActivateFunc) on_delete_row);\n\n            install_action (\"network.go-online\",       null, (WidgetActionActivateFunc) on_go_online);\n            install_action (\"network.go-offline\",      null, (WidgetActionActivateFunc) on_go_offline);\n            install_action (\"network.leave\",           null, (WidgetActionActivateFunc) on_delete_row);\n            install_action (\"network.delete\",          null, (WidgetActionActivateFunc) on_delete_row);\n            install_action (\"network.change-access\",   null, (WidgetActionActivateFunc) on_change_access);\n            install_action (\"network.change-password\", null, (WidgetActionActivateFunc) on_change_password);\n            install_action (\"network.copy-id\",         null, (WidgetActionActivateFunc) on_copy_id);\n            install_action (\"network.details\",         null, (WidgetActionActivateFunc) on_show_details);\n\n            install_action (\"member.approve\",          null, (WidgetActionActivateFunc) on_approve_row);\n            install_action (\"member.reject\",           null, (WidgetActionActivateFunc) on_reject_row);\n            install_action (\"member.evict\",            null, (WidgetActionActivateFunc) on_delete_row);\n            install_action (\"member.copy-id\",          null, (WidgetActionActivateFunc) on_copy_id);\n            install_action (\"member.copy-ipv4\",        null, (WidgetActionActivateFunc) on_copy_ipv4);\n            install_action (\"member.copy-ipv6\",        null, (WidgetActionActivateFunc) on_copy_ipv6);\n            install_action (\"member.details\",          null, (WidgetActionActivateFunc) on_show_details);\n\n            settings = new GLib.Settings (Config.APP_ID + \".network-list\");\n\n            show_offline_members   = settings.get_boolean (\"show-offline-members\");\n            sort_by                = settings.get_string  (\"sort-by\");\n            network_label_template = settings.get_string  (\"network-template\");\n            member_label_template  = settings.get_string  (\"member-template\");\n\n            settings.changed.connect ((key) => {\n                if (key == \"sort-by\") {\n                    sort_by = settings.get_string (\"sort-by\");\n                    sort ();\n                } else if (key == \"show-offline-members\") {\n                    autoselect (true);\n                    show_offline_members = settings.get_boolean (\"show-offline-members\");\n                    refilter ();\n                }\n            });\n\n            store = new GLib.ListStore (typeof (Network));\n\n            tree_list_model = new TreeListModel (store, false, true, create_model);\n\n            sorter = new CustomSorter((a, b) => {\n                var itemA = ((TreeListRow) a).get_item ();\n                var itemB = ((TreeListRow) b).get_item ();\n\n                return sort_by_string (get_item_sort_string (itemA), get_item_sort_string (itemB));\n            });\n\n            sort_model = new SortListModel (tree_list_model, sorter);\n\n            filter = new CustomFilter ((row) => {\n                var item = ((TreeListRow) row).get_item ();\n                return filter_tree_row (item, win.search_entry.text);\n            });\n\n            filter_model = new FilterListModel (sort_model, filter);\n            filter_model.items_changed.connect_after (() => {\n                // When items are added or removed from the model no selection-changed signal will be emitted\n                // so we need to listen to items-changed as well and manually call selection_changed()\n                selection_changed ();\n            });\n\n            selection_model = new SingleSelection (filter_model);\n            selection_model.autoselect = false;\n            selection_model.can_unselect = true;\n            selection_model.selection_changed.connect (() => {\n                selection_changed ();\n            });\n\n            list_view.model = selection_model;\n\n            var network_list_menu_builder = new Builder.from_resource(\"/com/github/ztefn/haguichi/ui/menus/network-list-menu.ui\");\n            list_view_popover_menu = (PopoverMenu) network_list_menu_builder.get_object (\"popover_menu\");\n            list_view_popover_menu.set_parent (this);\n\n            var network_menu_builder = new Builder.from_resource(\"/com/github/ztefn/haguichi/ui/menus/network-menu.ui\");\n            network_popover_menu = (PopoverMenu) network_menu_builder.get_object (\"popover_menu\");\n            network_popover_menu.set_parent (this);\n\n            var member_menu_builder = new Builder.from_resource(\"/com/github/ztefn/haguichi/ui/menus/member-menu.ui\");\n            member_popover_menu = (PopoverMenu) member_menu_builder.get_object (\"popover_menu\");\n            member_popover_menu.set_parent (this);\n\n            member_menu_model = (Menu) member_menu_builder.get_object (\"menu_model\");\n\n            var secondary_click_gesture = new GestureClick () {\n                button = Gdk.BUTTON_SECONDARY\n            };\n            secondary_click_gesture.pressed.connect ((n_press, x, y) => {\n                var widget = pick (x, y, PickFlags.DEFAULT);\n                if (widget is ListView) {\n                    show_context_menu (null, (int) x, (int) y);\n                } else {\n                    //print (\"type: %s\\n\", widget.get_type ().name ());\n                    TreeExpander tree_expander;\n                    if (widget is TreeExpander) {\n                        // Widget is tree expander itself\n                        tree_expander = (TreeExpander) widget;\n                    } else if (widget.get_first_child () is TreeExpander) {\n                        // Get child of list item widget\n                        tree_expander = (TreeExpander) widget.get_first_child ();\n                    } else {\n                        // Find tree expander in ancestor\n                        tree_expander = (TreeExpander) widget.get_ancestor (typeof (TreeExpander));\n                    }\n\n                    if (tree_expander != null) {\n                        var item = tree_expander.item;\n                        if (item is Network) {\n                            var network = (Network) item;\n                            selection_model.selected = find_selection_model_position (network);\n                            show_context_menu (item, (int) x, (int) y);\n                        } else if (item is Member) {\n                            var member = (Member) item;\n                            selection_model.selected = find_selection_model_position (member);\n                            show_context_menu (item, (int) x, (int) y);\n                        }\n                    }\n                }\n            });\n            add_controller (secondary_click_gesture);\n        }\n\n        [GtkCallback]\n        public void on_activate () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n\n                if (network.status.status_int == 1) {\n                    network.go_offline ();\n                } else {\n                    network.go_online ();\n                }\n            } else if (item is Member) {\n                var member = (Member) item;\n                Command.execute_default_command (member);\n            }\n        }\n\n        private void on_collapse_row () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                set_row_expanded ((Network) item, false);\n            }\n        }\n\n        private void on_expand_row () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                set_row_expanded ((Network) item, true);\n            }\n        }\n\n        public void on_delete_row () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n\n                if (network.is_owner == 1) {\n                    network.delete ();\n                } else if (network.is_owner == 0) {\n                    network.leave ();\n                }\n            } else if (item is Member) {\n                var member = (Member) item;\n                if (member.network.is_owner == 1 && member.status.status_int != 3) {\n                    member.evict ();\n                }\n            }\n        }\n\n        private void on_context_menu () {\n            // Position context menu based on focused row in list view\n            Graphene.Rect out_bounds;\n            var focus_widget = list_view.get_focus_child ();\n            focus_widget.compute_bounds (list_view, out out_bounds);\n            show_context_menu (get_selected_item (), 6, (int) out_bounds.get_y () + focus_widget.get_height () + 11);\n        }\n\n        private void show_context_menu (Object? item, int x, int y) {\n            var rect = Gdk.Rectangle () {\n                x = x,\n                y = y\n            };\n\n            if (item is Network) {\n                var network = (Network) item;\n\n                action_set_enabled (\"network.go-online\",       network.status.status_int == 0);\n                action_set_enabled (\"network.go-offline\",      network.status.status_int == 1);\n                action_set_enabled (\"network.leave\",           network.is_owner == 0);\n                action_set_enabled (\"network.delete\",          network.is_owner == 1);\n                action_set_enabled (\"network.change-access\",   network.is_owner == 1);\n                action_set_enabled (\"network.change-password\", network.is_owner == 1);\n                action_set_enabled (\"network.details\",         !win.split_view.show_sidebar);\n\n                network_popover_menu.pointing_to = rect;\n                network_popover_menu.popup ();\n            } else if (item is Member) {\n                var member = (Member) item;\n\n                action_set_enabled (\"member.approve\",          member.network.is_owner == 1 && member.status.status_int == 3);\n                action_set_enabled (\"member.reject\",           member.network.is_owner == 1 && member.status.status_int == 3);\n                action_set_enabled (\"member.evict\",            member.network.is_owner == 1 && member.status.status_int != 3);\n                action_set_enabled (\"member.copy-ipv4\",        member.ipv4 != null          && member.status.status_int != 3);\n                action_set_enabled (\"member.copy-ipv6\",        member.ipv6 != null          && member.status.status_int != 3);\n                action_set_enabled (\"member.details\",          !win.split_view.show_sidebar);\n\n                if (member.status.status_int == 3 && commands_menu_present) {\n                    member_menu_model.remove (0);\n                    commands_menu_present = false;\n                } else if (member.status.status_int != 3 && !commands_menu_present) {\n                    member_menu_model.insert_section (0, null, Command.get_commands_menu ());\n                    commands_menu_present = true;\n                }\n\n                member_popover_menu.pointing_to = rect;\n                member_popover_menu.popup ();\n            } else {\n                list_view_popover_menu.pointing_to = rect;\n                list_view_popover_menu.popup ();\n            }\n        }\n\n        private void on_go_online () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                network.go_online ();\n            }\n        }\n\n        private void on_go_offline () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                network.go_offline ();\n            }\n        }\n\n        private void on_change_access () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                network.change_access ();\n            }\n        }\n\n        private void on_change_password () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                network.change_password ();\n            }\n        }\n\n        private void on_approve_row () {\n            var item = get_selected_item ();\n\n            if (item is Member) {\n                var member = (Member) item;\n                member.approve ();\n            }\n        }\n\n        private void on_reject_row () {\n            var item = get_selected_item ();\n\n            if (item is Member) {\n                var member = (Member) item;\n                member.reject ();\n            }\n        }\n\n        private void on_copy_id () {\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                copy_to_clipboard (network.id);\n            } else if (item is Member) {\n                var member = (Member) item;\n                copy_to_clipboard (member.id);\n            }\n        }\n\n        private void on_copy_ipv4 () {\n            var item = get_selected_item ();\n\n            if (item is Member) {\n                var member = (Member) item;\n                copy_to_clipboard (member.ipv4);\n            }\n        }\n\n        private void on_copy_ipv6 () {\n            var item = get_selected_item ();\n\n            if (item is Member) {\n                var member = (Member) item;\n                copy_to_clipboard (member.ipv6);\n            }\n        }\n\n        private void copy_to_clipboard (string text) {\n            win.get_clipboard ().set_text (text);\n            win.show_copied_to_clipboard_toast ();\n        }\n\n        private void on_show_details () {\n            win.toggle_sidebar ();\n        }\n\n        private ListModel? create_model (Object item) {\n            if (item is Network) {\n                return item.store;\n            }\n\n            return null;\n        }\n\n        public void fill_tree () {\n            remove_all ();\n\n            foreach (Network network in connection.networks) {\n                add_network (network, false);\n            }\n\n            if (store.n_items > 0) {\n                // Make sure the scrollbar is at top most position\n                list_view.scroll_to (0, ListScrollFlags.NONE, null);\n\n                // Select specified item\n                select_item ();\n            }\n\n            if (restore_search_text != null) {\n                win.search_bar.search_mode_enabled = true;\n                win.search_entry.text = restore_search_text;\n            }\n\n            clear_state ();\n        }\n\n        public void add_network (Network network, bool select) {\n            store.append (network);\n\n            network.init ();\n            foreach (Member member in network.members) {\n                member.init ();\n            }\n\n            // Show network list when the first network has been added\n            if (store.n_items == 1) {\n                set_connected_stack_page ();\n            }\n\n            // Set row expanded state\n            if (is_collapsed (network)) {\n                set_row_expanded (network, false);\n            }\n\n            // Connect to expanded signal on row to save collapsed networks\n            tree_list_model.get_row (find_tree_model_position (network)).notify[\"expanded\"].connect (() => {\n                save_collapsed_networks ();\n            });\n\n            if (select) {\n                select_item ();\n                clear_state ();\n            }\n        }\n\n        public void remove_network (Network network) {\n            autoselect (true);\n\n            uint position;\n            store.find (network, out position);\n            store.remove (position);\n\n            refilter ();\n        }\n\n        public void remove_all () {\n            skip_save_collapsed_networks = true;\n            store.remove_all ();\n            skip_save_collapsed_networks = false;\n        }\n\n        public void sort () {\n            sorter.changed (SorterChange.DIFFERENT);\n        }\n\n        public void refilter () {\n            filter.changed (FilterChange.DIFFERENT);\n            selection_changed ();\n            set_connected_stack_page ();\n        }\n\n        public Object? get_selected_item () {\n            var row = ((TreeListRow) selection_model.get_selected_item ());\n            if (row is TreeListRow) {\n                return row.get_item ();\n            }\n\n            return null;\n        }\n\n        public Member? get_selected_member () {\n            var item = get_selected_item ();\n\n            if (item is Member) {\n                return (Member) item;\n            }\n\n            return null;\n        }\n\n        private void select_item () {\n            if (select_network_id != null) {\n                foreach (Network network in connection.networks) {\n                    if (select_network_id == network.id) {\n                        uint pos = -1;\n                        if (select_member_id != null) {\n                            Member member = network.return_member_by_id (select_member_id);\n                            if (member != null) {\n                                pos = find_selection_model_position (member);\n                            }\n                        } else {\n                            pos = find_selection_model_position (network);\n                        }\n\n                        // Only continue if selection is visible\n                        if (pos < selection_model.n_items) {\n                            list_view.scroll_to (pos, ListScrollFlags.FOCUS, null);\n                            selection_model.selected = pos;\n                        }\n                    }\n                }\n            }\n        }\n\n        public void unselect () {\n            var item = get_selected_item ();\n\n            if (item != null) {\n                selection_model.unselect_item (find_selection_model_position (item));\n            }\n        }\n\n        public void autoselect (bool autoselect) {\n            selection_model.autoselect = autoselect;\n        }\n\n        public void save_state () {\n            if (win.search_bar.search_mode_enabled) {\n                restore_search_text = win.search_entry.text;\n            }\n\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                select_network_id = item.id;\n            } else if (item is Member) {\n                select_member_id  = item.id;\n                select_network_id = item.network.id;\n            }\n        }\n\n        public void clear_state () {\n            restore_search_text = null;\n            select_member_id    = null;\n            select_network_id   = null;\n        }\n\n        public void selection_changed () {\n            Idle.add_full (Priority.HIGH_IDLE, () => {\n                autoselect (false);\n                return false;\n            });\n\n            var item = get_selected_item ();\n\n            if (item is Network) {\n                var network = (Network) item;\n                win.sidebar.set_network (network);\n            } else if (item is Member) {\n                var member = (Member) item;\n                win.sidebar.set_member (member);\n            } else {\n                win.sidebar.show_page (\"Information\");\n            }\n        }\n\n        private void set_row_expanded (Network network, bool expanded) {\n            tree_list_model.get_row (find_tree_model_position (network)).expanded = expanded;\n        }\n\n        public void set_all_rows_expanded (bool expanded) {\n            uint64 start = get_real_time ();\n\n            var network_rows = new List<TreeListRow> ();\n            for (uint pos = 0; pos < tree_list_model.n_items; pos++) {\n                var row = tree_list_model.get_row (pos);\n                var item = row.get_item ();\n                if (item is Network) {\n                    network_rows.append (row);\n                }\n            }\n\n            // Calculate scrolled percentage to determine optimal direction\n            double scrolled = (scrolled_window.vadjustment.value / scrolled_window.vadjustment.upper);\n            if (expanded && scrolled > 0.6 || !expanded && scrolled < 0.66) {\n                // Go backwards through list\n                network_rows.reverse ();\n            }\n\n            skip_save_collapsed_networks = true;\n            foreach (TreeListRow network_row in network_rows) {\n                network_row.expanded = expanded;\n            }\n            skip_save_collapsed_networks = false;\n\n            save_collapsed_networks ();\n\n            debug (\"set_all_rows_expanded: %s all in %s microseconds at %f scrolled\\n\",\n                   expanded ? \"expanded\" : \"collapsed\",\n                   (get_real_time () - start).to_string (), scrolled);\n        }\n\n        private bool is_collapsed (Network network) {\n            string[] collapsed = settings.get_strv (\"collapsed-networks\");\n\n            return (network.id in collapsed);\n        }\n\n        public void save_collapsed_networks () {\n            if (skip_save_collapsed_networks) {\n                return;\n            }\n\n            string[] collapsed = {};\n            for (uint pos = 0; pos < tree_list_model.n_items; pos++) {\n                var row = tree_list_model.get_row (pos);\n                if (!row.expanded) {\n                    var item = row.get_item ();\n                    if (item is Network) {\n                        collapsed += ((Network) item).id;\n                    }\n                }\n            }\n\n            settings.set_strv (\"collapsed-networks\", collapsed);\n        }\n\n        private int sort_by_string (string a, string b) {\n            return strcmp (a.collate_key (), b.collate_key ());\n        }\n\n        private uint? find_selection_model_position (Object item) {\n            for (uint pos = 0; pos < selection_model.n_items; pos++) {\n                if (((TreeListRow) selection_model.model.get_item (pos)).get_item () == item) {\n                    return pos;\n                }\n            }\n\n            return -1;\n        }\n\n        private uint? find_tree_model_position (Object item) {\n            for (uint pos = 0; pos < tree_list_model.n_items; pos++) {\n                if (((TreeListRow) tree_list_model.get_row (pos)).get_item () == item) {\n                    return pos;\n                }\n            }\n\n            return -1;\n        }\n\n        private string get_item_sort_string (Object item) {\n            var sort_string = \"\";\n            if (item is Network) {\n                Network network = (Network) item;\n                sort_string = (sort_by == \"status\") ? network.status_sort_string : network.name_sort_string;\n            } else if (item is Member) {\n                Member member = (Member) item;\n                sort_string = (sort_by == \"status\") ? member.status_sort_string : member.name_sort_string;\n            }\n\n            return sort_string;\n        }\n\n        private bool filter_tree_row (Object item, string search_text) {\n            string match_text = \"\";\n\n            if (item is Network) {\n                Network network = (Network) item;\n\n                // If there is no search text then network is shown\n                if (search_text == \"\") return true;\n\n                // Compose text to match with search text\n                match_text = \"%s %s %s\".printf (network.name, network.id, network.owner);\n                foreach (Member member in network.members) {\n                    if (show_offline_members || member.status.status_int != 0) {\n                        match_text += \" %s %s %s %s\".printf (member.nick, member.id, member.ipv4, member.ipv6);\n                    }\n                }\n            } else if (item is Member) {\n                Member member = (Member) item;\n\n                // If offline members should be hidden then check status first\n                if (!show_offline_members && member.status.status_int == 0) return false;\n\n                // If there is no search text then member is shown\n                if (search_text == \"\") return true;\n\n                // Compose text to match with search text\n                match_text = \"%s %s %s %s %s %s %s\".printf (member.network.name, member.network.id, member.network.owner,\n                                                            member.nick, member.id, member.ipv4, member.ipv6);\n            }\n\n            // Split search text into multiple terms and match all\n            string[] terms = search_text.casefold ().split_set (\" +\");\n            foreach (string term in terms) {\n                // If term contains comma match any of multiple words, otherwise match full term\n                if (term.contains (\",\")) {\n                    bool match = false;\n                    string[] words = term.split (\",\");\n                    foreach (string word in words) {\n                        if (word != \"\" && match_text.casefold ().contains (word)) {\n                            match = true;\n                            break;\n                        }\n                    }\n                    if (!match) {\n                        return false;\n                    }\n                } else if (!match_text.casefold ().contains (term)) {\n                    return false;\n                }\n            }\n\n            return true;\n        }\n\n        private void set_connected_stack_page () {\n            win.set_connected_stack_page (win.search_entry.text.length > 0 && filter_model.n_items == 0 ? \"no-results\" : store.n_items == 0 ? \"empty\" : \"network-list\");\n        }\n    }\n}\n"
  },
  {
    "path": "src/network.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Network : Object {\n        private ConfirmDialog dialog;\n\n        public List<Member> members;\n        public ListStore    store;\n\n        public Status   status;\n        public string   id;\n        public string   name;\n        public int      is_owner;\n        public string   owner;\n        public string   lock_state;\n        public string   approve;\n        public int      capacity;\n\n        public bool     hide_expander     { get; private set; }\n        public string   label             { get; private set; }\n        public string[] node_css_classes  { get; private set; }\n        public string[] label_css_classes { get; private set; }\n\n        public string   name_sort_string;\n        public string   status_sort_string;\n\n        public bool     updating;\n\n        public Network (Status _status, string _id, string? _name, string? _owner, int? _capacity) {\n            status     = _status;\n            id         = _id;\n            name       = _name;\n            members    = new List<Member> ();\n            store      = new ListStore (typeof (Member));\n            is_owner   = -1;\n            owner      = _owner;\n            lock_state = \"\";\n            approve    = \"\";\n            capacity   = _capacity;\n\n            show_hide_expander ();\n            set_label_markup ();\n            set_row_css_classes ();\n            set_sort_strings ();\n        }\n\n        public void init () {\n            determine_ownership ();\n        }\n\n        public void update (Status _status, string? _name) {\n            // Check updating flag to prevent the background update process from overriding a very recent change\n            if (!updating) {\n                status = _status;\n                name   = _name;\n\n                set_row_css_classes ();\n                set_sort_strings ();\n            }\n        }\n\n        private void show_hide_expander () {\n            hide_expander = store.n_items == 0;\n        }\n\n        public void set_label_markup () {\n            string id   = Markup.escape_text (id).replace   (\"%\", \"{PERCENTSIGN}\");\n            string name = Markup.escape_text (name).replace (\"%\", \"{PERCENTSIGN}\");\n\n            string template = win.network_list.network_label_template;\n            template = template.replace (\"%ID\",  id);\n            template = template.replace (\"%N\",   name);\n            template = template.replace (\"%S\",   status.status_text);\n            template = template.replace (\"%CAP\", capacity.to_string ());\n            template = template.replace (\"<br>\", \"\\n\");\n\n            if (template.contains (\"%T\") || template.contains (\"%O\")) {\n                int member_count;\n                int member_online_count;\n                return_member_count (out member_count, out member_online_count);\n\n                template = template.replace (\"%T\", member_count.to_string ());\n                template = template.replace (\"%O\", member_online_count.to_string ());\n            }\n\n            if (is_owner == 1) {\n                template = template.replace (\"%*\",  \"★\");\n                template = template.replace (\"%_*\", \" ★\");\n                template = template.replace (\"%*_\", \"★ \");\n            } else {\n                template = template.replace (\"%*\",  \"\");\n                template = template.replace (\"%_*\", \"\");\n                template = template.replace (\"%*_\", \"\");\n            }\n\n            label = template.replace (\"{PERCENTSIGN}\", \"%\");\n        }\n\n        public void set_row_css_classes () {\n            node_css_classes  = new string[] {\"network-node\", status.get_css_classes ()};\n            label_css_classes = new string[] {\"network-label\", status.status_int == 0 ? \"dim-label\" : \"\"};\n        }\n\n        public void set_sort_strings () {\n            name_sort_string   = name;\n            status_sort_string = status.status_sortable + name;\n        }\n\n        public void return_member_count (out int total_count, out int online_count) {\n            total_count  = 1; // Include client itself\n            online_count = status.status_int; // Include client itself if online\n\n            foreach (Member member in members) {\n                total_count ++;\n\n                if (member.status.status_int > 0 && member.status.status_int < 3) {\n                    online_count ++;\n                }\n            }\n        }\n\n        public Member? return_member_by_id (string id) {\n            foreach (Member member in members) {\n                if (member.id == id) {\n                    return member;\n                }\n            }\n\n            return null;\n        }\n\n        public string return_owner_string () {\n            string _owner;\n\n            if (is_owner == 1) {\n                _owner = _(\"You\");\n            } else if (owner != null) {\n                _owner = owner;\n\n                foreach (Member member in members) {\n                    if (member.id == _owner) {\n                        _owner = member.nick;\n                    }\n                }\n            } else {\n                _owner = _(\"Unknown\");\n            }\n\n            return _owner;\n        }\n\n        private void determine_ownership () {\n            try {\n                this.ref ();\n                network_threads.add (this);\n            } catch (ThreadError e) {\n                this.unref ();\n                critical (\"determine_ownership: %s\", e.message);\n            }\n        }\n\n        public void determine_ownership_thread () {\n            try {\n                if (owner == \"This computer\") {\n                    is_owner = 1;\n\n                    string output;\n\n                    if (demo_mode) {\n                        output = \"\"\"\nid       : %s\nname     : %s\ntype     : Mesh\nowner    : This computer\nstatus   : unlocked\napprove  : auto\"\"\".printf (id, name);\n                    } else {\n                        output = Command.return_output (\"hamachi network \\\"%s\\\"\".printf (Utils.clean_string (id)));\n                    }\n                    debug (\"determine_ownership_thread: %s\", output);\n\n                    lock_state = Hamachi.retrieve (output, \"status\");\n                    approve = Hamachi.retrieve (output, \"approve\");\n                } else {\n                    is_owner = 0;\n\n                    try {\n                        MatchInfo mi;\n                        new Regex (\"\"\"^.*? \\((?<id>[0-9-]{11})\\)$\"\"\").match (owner, 0, out mi);\n\n                        string id = mi.fetch_named (\"id\");\n\n                        if (id != null) {\n                            owner = id;\n                            foreach (Member member in members) {\n                                if (member.id == owner) {\n                                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                                        member.is_owner = true;\n                                        member.set_label_markup ();\n                                        return false;\n                                    });\n                                }\n                            }\n                        }\n                    } catch (RegexError e) {\n                        critical (\"determine_ownership_thread: %s\", e.message);\n                    }\n                }\n                debug (\"determine_ownership_thread: Owner for network %s: %s\", id, owner);\n\n                Idle.add_full (Priority.HIGH_IDLE, () => {\n                    set_label_markup ();\n\n                    // Update sidebar with new ownership info when selected\n                    if (win.network_list.get_selected_item () == this) {\n                        win.sidebar.set_network (this);\n                    }\n                    return false;\n                });\n            } finally {\n                this.unref ();\n            }\n        }\n\n        public void add_member (Member member) {\n            members.append (member);\n            store.append (member);\n\n            show_hide_expander ();\n        }\n\n        public void remove_member (Member member) {\n            members.remove (member);\n\n            win.network_list.autoselect (true);\n\n            uint position;\n            store.find (member, out position);\n            store.remove (position);\n\n            show_hide_expander ();\n        }\n\n        public void go_online () {\n            updating = true;\n\n            status = new Status (\"*\");\n            set_row_css_classes ();\n\n            win.sidebar.set_network (this);\n\n            new Thread<void*> (null, () => {\n                bool success = Hamachi.go_online (this);\n\n                if (success) {\n                    // Wait a second to get an updated list\n                    Thread.usleep (1000000);\n\n                    Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                        if (demo_mode) {\n                            set_sort_strings ();\n                            foreach (Member member in members) {\n                                member.set_sort_strings ();\n                            }\n                            set_label_markup ();\n                        }\n\n                        Controller.update_connection ();\n                        return false;\n                    });\n                } else {\n                    status = new Status (\" \");\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        set_row_css_classes ();\n                        win.sidebar.set_network (this);\n                        return false;\n                    });\n                }\n\n                updating = false;\n                return null;\n            });\n        }\n\n        public void go_offline () {\n            updating = true;\n\n            status = new Status (\" \");\n            set_row_css_classes ();\n\n            win.sidebar.set_network (this);\n\n            new Thread<void*> (null, () => {\n                bool success = Hamachi.go_offline (this);\n\n                if (success) {\n                    // Wait a second to get an updated list\n                    Thread.usleep (1000000);\n\n                    Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                        if (demo_mode) {\n                            set_sort_strings ();\n                            foreach (Member member in members) {\n                                member.set_sort_strings ();\n                            }\n                            set_label_markup ();\n                        }\n\n                        Controller.update_connection ();\n                        return false;\n                    });\n                } else {\n                    status = new Status (\"*\");\n\n                    Idle.add_full (Priority.HIGH_IDLE, () => {\n                        set_row_css_classes ();\n                        win.sidebar.set_network (this);\n                        return false;\n                    });\n                }\n\n                updating = false;\n                return null;\n            });\n        }\n\n        public void change_password () {\n            var dialog = new ChangePasswordDialog (this);\n            win.show_dialog (dialog);\n        }\n\n        public void change_access () {\n            var dialog = new ChangeAccessDialog (this);\n            win.show_dialog (dialog);\n        }\n\n        public void leave () {\n            var heading = _(\"Are you sure you want to leave the network “{0}”?\").replace (\"{0}\", name);\n            var body    = _(\"If admitted, you can rejoin the network at any later time.\");\n\n            dialog = new ConfirmDialog (win, heading, body, _(\"_Leave\"), Adw.ResponseAppearance.SUGGESTED);\n            dialog.confirm.connect (() => {\n                new Thread<void*> (null, () => {\n                    bool success = Hamachi.leave (this);\n\n                    if (success) {\n                        Idle.add_full (Priority.HIGH_IDLE, () => {\n                            connection.remove_network (this);\n                            return false;\n                        });\n\n                        // Wait a second to get an updated list\n                        Thread.usleep (1000000);\n\n                        Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                            Controller.update_connection ();\n                            return false;\n                        });\n                    }\n\n                    return null;\n                });\n            });\n        }\n\n        public void delete () {\n            var heading = _(\"Are you sure you want to delete the network “{0}”?\").replace (\"{0}\", name);\n            var body    = _(\"If you delete a network, it will be permanently lost.\");\n\n            dialog = new ConfirmDialog (win, heading, body, _(\"_Delete\"), Adw.ResponseAppearance.DESTRUCTIVE);\n            dialog.confirm.connect (() => {\n                new Thread<void*> (null, () => {\n                    bool success = Hamachi.delete (this);\n\n                    if (success) {\n                        Idle.add_full (Priority.HIGH_IDLE, () => {\n                            connection.remove_network (this);\n                            return false;\n                        });\n\n                        // Wait a second to get an updated list\n                        Thread.usleep (1000000);\n\n                        Idle.add_full (Priority.DEFAULT_IDLE, () => {\n                            Controller.update_connection ();\n                            return false;\n                        });\n                    }\n\n                    return null;\n                });\n            });\n        }\n    }\n}\n"
  },
  {
    "path": "src/preferences.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/preferences.ui\")]\n    public class Preferences : Adw.PreferencesDialog {\n        private Settings config;\n        private Settings behavior;\n        private Settings notifications;\n        private Settings ui;\n\n        private enum ColorScheme {\n            SYSTEM,\n            LIGHT,\n            DARK,\n        }\n\n        private enum UpdateInterval {\n            15_SECONDS = 15,\n            30_SECONDS = 30,\n             1_MINUTE  = 60,\n             2_MINUTES = 120,\n             5_MINUTES = 300,\n            10_MINUTES = 600,\n            15_MINUTES = 900,\n            30_MINUTES = 1800,\n            NEVER      = 0,\n        }\n\n        [GtkChild]\n        unowned Adw.PreferencesPage general_page;\n        [GtkChild]\n        unowned Adw.PreferencesPage commands_page;\n        [GtkChild]\n        unowned Adw.PreferencesPage desktop_page;\n\n        [GtkChild]\n        unowned Adw.ActionRow configuration;\n        [GtkChild]\n        unowned Adw.EntryRow nickname;\n        [GtkChild]\n        unowned Adw.ComboRow protocol;\n\n        [GtkChild]\n        unowned Adw.ComboRow update_interval;\n        [GtkChild]\n        unowned Adw.SwitchRow connect_on_startup;\n        [GtkChild]\n        unowned Adw.SwitchRow reconnect_on_connection_loss;\n        [GtkChild]\n        unowned Adw.SwitchRow disconnect_on_quit;\n\n        [GtkChild]\n        public unowned CommandsEditor commands_editor;\n\n        [GtkChild]\n        public unowned Gtk.CheckButton system;\n        [GtkChild]\n        public unowned Gtk.CheckButton light;\n        [GtkChild]\n        public unowned Gtk.CheckButton dark;\n        [GtkChild]\n        public unowned Adw.SwitchRow show_indicator;\n\n        [GtkChild]\n        unowned Adw.SwitchRow notify_on_connection_loss;\n        [GtkChild]\n        unowned Adw.SwitchRow notify_on_member_join;\n        [GtkChild]\n        unowned Adw.SwitchRow notify_on_member_leave;\n        [GtkChild]\n        unowned Adw.SwitchRow notify_on_member_online;\n        [GtkChild]\n        unowned Adw.SwitchRow notify_on_member_offline;\n\n        construct {\n            // Lower minimum width request to match window\n            ((Adw.BreakpointBin) general_page.get_ancestor (typeof (Adw.BreakpointBin))).width_request = win.width_request;\n\n            general_page.icon_name = Utils.get_available_theme_icon ({\n                \"applications-system-symbolic\",\n                \"emblem-system-symbolic\",\n                \"preferences-system-symbolic\"\n            });\n            commands_page.icon_name = Utils.get_available_theme_icon ({\n                \"utilities-terminal-symbolic\",\n                \"system-run-symbolic\"\n            });\n            desktop_page.icon_name = Utils.get_available_theme_icon ({\n                \"preferences-desktop-appearance-symbolic\",\n                \"user-desktop-symbolic\"\n            });\n\n            config        = new Settings (Config.APP_ID + \".config\");\n            behavior      = new Settings (Config.APP_ID + \".behavior\");\n            notifications = new Settings (Config.APP_ID + \".notifications\");\n            ui            = new Settings (Config.APP_ID + \".ui\");\n\n            install_action (\"config.open\",    null, (Gtk.WidgetActionActivateFunc) open_config);\n            install_action (\"config.save\",    null, (Gtk.WidgetActionActivateFunc) save_config);\n            install_action (\"config.restore\", null, (Gtk.WidgetActionActivateFunc) restore_config);\n\n            var config_exists = Utils.path_exists (\"d\", Hamachi.DATA_PATH);\n\n            configuration.subtitle = config_exists ? Hamachi.DATA_PATH : _(\"Not present\");\n            action_set_enabled (\"config.open\", config_exists);\n            action_set_enabled (\"config.save\", config_exists);\n\n            nickname.text = Utils.parse_nick (config.get_string (\"nickname\"));\n            nickname.apply.connect (() => {\n                var nick = nickname.text;\n                var parsed_nick = Utils.parse_nick (nick);\n                debug (\"nickname changed to: %s (parsed: %s)\", nick, parsed_nick);\n\n                nickname.editable  = false;\n                nickname.sensitive = false;\n                nickname.text      = parsed_nick;\n                nickname.sensitive = true;\n                nickname.editable  = true;\n\n                config.set_string (\"nickname\", nick);\n                win.set_nick (parsed_nick);\n\n                // Run hamachi command if connected\n                if (Controller.last_status >= 6) {\n                    new Thread<void*> (null, () => {\n                        Hamachi.set_nick (parsed_nick);\n                    });\n                }\n            });\n\n#if FOR_ELEMENTARY\n            // Workaround for styling issue with AdwViewSwitcher\n            // https://github.com/elementary/stylesheet/issues/1312\n            var navigation_page = general_page.get_ancestor (typeof (Adw.NavigationPage));\n            if (navigation_page != null) {\n                var view_switcher = (Gtk.Widget) navigation_page\n                    .get_first_child () // AdwBreakPointBin breakpoint_bin\n                        .get_first_child () // AdwToolbarView\n                            .get_first_child () // GtkStack content_stack\n                            .get_next_sibling () // GtkRevealer\n                                .get_first_child () // GtkWindowHandle\n                                    .get_first_child () // GtkBox\n                                        .get_first_child () // AdwHeaderBar\n                                            .get_first_child () // GtkWindowHandle\n                                                .get_first_child () // GtkCenterBox\n                                                    .get_first_child () // AdwGizmo\n                                                    .get_next_sibling () // AdwBin\n                                                        .get_first_child () // GtkStack title_stack\n                                                            .get_first_child () // GtkStack view_switcher_stack\n                                                                .get_first_child (); // AdwViewSwitcher view_switcher\n\n                // If the view switcher was found then add the \"linked\" class\n                if (view_switcher is Adw.ViewSwitcher) {\n                    ((Adw.ViewSwitcher) view_switcher).add_css_class (\"linked\");\n                }\n            }\n\n            // Workaround for missing adw-entry-apply-symbolic icon in elementary icon theme\n            // https://github.com/elementary/icons/issues/1333\n            if (!Utils.get_icon_theme ().has_icon (\"adw-entry-apply-symbolic\")) {\n                var button = (Gtk.Widget) nickname\n                    .get_first_child () // GtkBox header\n                        .get_first_child () // GtkBox prefixes\n                        .get_next_sibling () // AdwGizmo editable_area\n                            .get_first_child () // GtkLabel empty_title\n                            .get_next_sibling () // GtkLabel title\n                            .get_next_sibling () // GtkText text\n                            .get_next_sibling () // GtkImage indicator\n                            .get_next_sibling (); // GtkButton apply_button\n\n                // If the button was found then change the icon to one that we know exists\n                if (button is Gtk.Button) {\n                    ((Gtk.Button) button).halign = Gtk.Align.CENTER;\n\n                    var image = button.get_first_child (); // GtkImage\n\n                    // If the image was found then change the icon to one that we know exists\n                    if (image is Gtk.Image) {\n                        ((Gtk.Image) image).icon_name = \"object-select-symbolic\";\n                    }\n                }\n            }\n#endif\n\n            protocol.selected = (int) config.get_enum (\"protocol\");\n            protocol.notify[\"selected-item\"].connect (() => {\n                var i = (int) protocol.selected;\n                config.set_enum (\"protocol\", i);\n\n                // Run hamachi command if connected\n                if (Controller.last_status >= 6) {\n                    new Thread<void*> (null, () => {\n                        var protocol = \"both\";\n                        if (i == 1) {\n                            protocol = \"ipv4\";\n                        } else if (i == 2) {\n                            protocol = \"ipv6\";\n                        }\n                        Hamachi.set_protocol (protocol);\n                    });\n                }\n            });\n\n            var model      = new Adw.EnumListModel (typeof (UpdateInterval));\n            var expression = new Gtk.CClosureExpression (typeof (string), null, {}, (Callback) update_interval_name, null, null);\n            update_interval.expression = expression;\n            update_interval.model      = model;\n            update_interval.selected   = get_update_interval_row_index ();\n            update_interval.notify[\"selected-item\"].connect (() => {\n                var item = (Adw.EnumListItem) update_interval.selected_item;\n                var val  = (UpdateInterval) item.get_value ();\n                config.set_int (\"update-interval\", val);\n            });\n\n            behavior.bind (\"connect-on-startup\",           connect_on_startup,           \"active\", DEFAULT);\n            behavior.bind (\"reconnect-on-connection-loss\", reconnect_on_connection_loss, \"active\", DEFAULT);\n            behavior.bind (\"disconnect-on-quit\",           disconnect_on_quit,           \"active\", DEFAULT);\n\n            var scheme = (ColorScheme) ui.get_enum (\"color-scheme\");\n\n            system.active = scheme == ColorScheme.SYSTEM;\n            light.active  = scheme == ColorScheme.LIGHT;\n            dark.active   = scheme == ColorScheme.DARK;\n\n            system.toggled.connect (on_style_selection);\n            light.toggled.connect  (on_style_selection);\n            dark.toggled.connect   (on_style_selection);\n\n            ui.bind (\"show-indicator\", show_indicator, \"active\", DEFAULT);\n\n            show_indicator.visible = indicator.item.host_registered;\n            indicator.item.notify[\"host-registered\"].connect (() => {\n                show_indicator.visible = indicator.item.host_registered;\n            });\n            show_indicator.notify[\"active\"].connect (() => {\n                indicator.active = ui.get_boolean (\"show-indicator\");\n                win.update_indicator_status ();\n            });\n\n            notifications.bind (\"connection-loss\", notify_on_connection_loss, \"active\", DEFAULT);\n            notifications.bind (\"member-join\",     notify_on_member_join,     \"active\", DEFAULT);\n            notifications.bind (\"member-leave\",    notify_on_member_leave,    \"active\", DEFAULT);\n            notifications.bind (\"member-online\",   notify_on_member_online,   \"active\", DEFAULT);\n            notifications.bind (\"member-offline\",  notify_on_member_offline,  \"active\", DEFAULT);\n\n            if (demo_mode) {\n                notify_on_connection_loss.notify[\"active\"].connect (() => {\n                    Controller.notify_connection_lost ();\n                });\n                notify_on_member_join.notify[\"active\"].connect (() => {\n                    Controller.notify_member_joined  (\"T-800\", \"Skynet\", 0, \"000-000-000\", {\"000-000-000\"});\n                });\n                notify_on_member_leave.notify[\"active\"].connect (() => {\n                    Controller.notify_member_left    (\"T-800\", \"Skynet\", 0);\n                });\n                notify_on_member_online.notify[\"active\"].connect (() => {\n                    Controller.notify_member_online  (\"T-800\", \"Skynet\", 1);\n                });\n                notify_on_member_offline.notify[\"active\"].connect (() => {\n                    Controller.notify_member_offline (\"T-800\", \"Skynet\", 2);\n                });\n            }\n        }\n\n        private void on_style_selection (Gtk.CheckButton btn) {\n            if (!btn.active) return;\n\n            int scheme = ColorScheme.SYSTEM;\n            if (btn == light) {\n                scheme = ColorScheme.LIGHT;\n            } else if (btn == dark) {\n                scheme = ColorScheme.DARK;\n            }\n            ui.set_enum (\"color-scheme\", scheme);\n            app.set_color_scheme (scheme);\n        }\n\n        private void open_config () {\n            Command.open_file (Hamachi.DATA_PATH);\n        }\n\n        private ListStore get_file_filters () {\n            var tar = new Gtk.FileFilter ();\n            tar.set_filter_name (_(\"All supported archives\"));\n            tar.add_mime_type (\"application/x-tar\");\n            tar.add_mime_type (\"application/x-compressed-tar\");\n            tar.add_mime_type (\"application/x-bzip-compressed-tar\");\n            tar.add_mime_type (\"application/x-lzma-compressed-tar\");\n            tar.add_mime_type (\"application/x-xz-compressed-tar\");\n            tar.add_mime_type (\"application/x-zstd-compressed-tar\");\n\n            var filters = new ListStore (typeof (Gtk.FileFilter));\n            filters.append (tar);\n\n            return filters;\n        }\n\n        private void save_config () {\n            debug (\"config.save action activated\");\n\n            var now = new DateTime.now_local ();\n\n            var dialog = new Gtk.FileDialog () {\n                title        = _(\"Save a Backup\"),\n                initial_name = \"logmein-hamachi-config_%s.tar.gz\".printf (now.format (\"%Y-%m-%d\")),\n                modal        = true,\n                filters      = get_file_filters ()\n            };\n\n            dialog.save.begin (win, null, (obj, res) => {\n                try {\n                    var file = dialog.save.end (res);\n                    var path = file.get_path ();\n                    debug (\"save_config: Selected path %s: \", path);\n                    Hamachi.save_config (path, this);\n                } catch (Error e) {\n                    critical (\"save_config %s: \", e.message);\n                }\n            });\n        }\n\n        private void restore_config () {\n            debug (\"config.restore action activated\");\n\n            var dialog = new Gtk.FileDialog () {\n                title        = _(\"Restore from Backup\"),\n                accept_label = _(\"_Restore\"),\n                modal        = true,\n                filters      = get_file_filters ()\n            };\n\n            dialog.open.begin (win, null, (obj, res) => {\n                try {\n                    var file = dialog.open.end (res);\n                    var path = file.get_path ();\n                    debug (\"restore_config: Selected path %s: \", path);\n                    Hamachi.restore_config (path, this);\n                } catch (Error e) {\n                    critical (\"restore_config: %s\", e.message);\n                }\n            });\n        }\n\n        private int get_update_interval_row_index () {\n            var interval = config.get_int (\"update-interval\");\n\n            if (interval == 0) {\n              return 8; // Never\n            } else if (interval < 30) {\n              return 0; // 15 seconds\n            } else if (interval < 60) {\n              return 1; // 30 seconds\n            } else if (interval < 120) {\n              return 2; // 1 minute\n            } else if (interval < 300) {\n              return 3; // 2 minutes\n            } else if (interval < 600) {\n              return 4; // 5 minutes\n            } else if (interval < 900) {\n              return 5; // 10 minutes\n            } else if (interval < 1800) {\n              return 6; // 15 minutes\n            } else {\n              return 7; // 30 minutes\n            }\n        }\n\n        private static string update_interval_name (Adw.EnumListItem item) {\n            switch (item.get_value ()) {\n                case UpdateInterval.NEVER:\n                    return _(\"Never\");\n                case UpdateInterval.15_SECONDS:\n                    return get_seconds_interval_label (15);\n                case UpdateInterval.30_SECONDS:\n                    return get_seconds_interval_label (30);\n                case UpdateInterval.1_MINUTE:\n                    return get_minutes_interval_label (1);\n                case UpdateInterval.2_MINUTES:\n                    return get_minutes_interval_label (2);\n                case UpdateInterval.5_MINUTES:\n                    return get_minutes_interval_label (5);\n                case UpdateInterval.10_MINUTES:\n                    return get_minutes_interval_label (10);\n                case UpdateInterval.15_MINUTES:\n                    return get_minutes_interval_label (15);\n                case UpdateInterval.30_MINUTES:\n                    return get_minutes_interval_label (30);\n                default:\n                    return \"\";\n            }\n        }\n\n        private static string get_seconds_interval_label (int interval) {\n            return ngettext (\"%S second\", \"%S seconds\", interval).replace (\"%S\", interval.to_string ());\n        }\n\n        private static string get_minutes_interval_label (int interval) {\n            return ngettext (\"%S minute\", \"%S minutes\", interval).replace (\"%S\", interval.to_string ());\n        }\n    }\n}\n"
  },
  {
    "path": "src/session.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [DBus (name = \"com.github.ztefn.haguichi\")]\n    public class Session : Object {\n        public void show () throws Error {\n            win.present ();\n        }\n\n        public void hide () throws Error {\n            win.hide ();\n        }\n\n        public void start_hamachi () throws Error {\n            win.trigger_action (\"connect\");\n        }\n\n        public void stop_hamachi () throws Error {\n            win.trigger_action (\"disconnect\");\n        }\n\n        public void join_network () throws Error {\n            win.present ();\n            win.trigger_action (\"join-network\");\n        }\n\n        public void create_network () throws Error {\n            win.present ();\n            win.trigger_action (\"create-network\");\n        }\n\n        public void information () throws Error {\n            win.present ();\n            win.trigger_action (\"info\");\n        }\n\n        public void preferences () throws Error {\n            win.present ();\n            win.trigger_action (\"preferences\");\n        }\n\n        public void about () throws Error {\n            win.present ();\n            win.trigger_action (\"about\");\n        }\n\n        public void quit_app () throws Error {\n            win.trigger_action (\"quit\");\n        }\n\n        public string get_mode () throws Error {\n            return win.get_mode ();\n        }\n\n        public bool get_modality () throws Error {\n            return (win.modal_dialog != null);\n        }\n\n        public bool get_visibility () throws Error {\n            return win.visible;\n        }\n\n        public signal void mode_changed (string mode);\n        public signal void modality_changed (bool modal);\n        public signal void visibility_changed (bool visible);\n        public signal void quitted ();\n    }\n}\n"
  },
  {
    "path": "src/sidebar.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/sidebar.ui\")]\n    public class Sidebar : Adw.Bin {\n        private Member member;\n        private Network network;\n\n        [GtkChild]\n        private unowned Gtk.Stack stack;\n\n        [GtkChild]\n        private unowned Gtk.ScrolledWindow scrolled_window;\n\n        [GtkChild]\n        private unowned SidebarPage network_page;\n        [GtkChild]\n        private unowned SidebarPage member_page;\n\n        [GtkChild]\n        unowned SidebarRow account_row;\n        [GtkChild]\n        unowned SidebarRow client_id_row;\n        [GtkChild]\n        unowned SidebarRow client_ipv4_row;\n        [GtkChild]\n        unowned SidebarRow client_ipv6_row;\n        [GtkChild]\n        unowned SidebarRow hamachi_row;\n\n        [GtkChild]\n        unowned SidebarRow network_status_row;\n        [GtkChild]\n        unowned SidebarRow network_id_row;\n        [GtkChild]\n        unowned SidebarRow network_owner_row;\n        [GtkChild]\n        unowned SidebarRow network_members_row;\n        [GtkChild]\n        unowned SidebarRow network_capacity_row;\n\n        [GtkChild]\n        unowned SidebarRow member_status_row;\n        [GtkChild]\n        unowned SidebarRow member_id_row;\n        [GtkChild]\n        unowned SidebarRow member_ipv4_row;\n        [GtkChild]\n        unowned SidebarRow member_ipv6_row;\n        [GtkChild]\n        unowned SidebarRow member_tunnel_row;\n        [GtkChild]\n        unowned SidebarRow member_connection_row;\n\n        [GtkChild]\n        public unowned Gtk.Button attach_button;\n        [GtkChild]\n        public unowned Gtk.Button cancel_button;\n\n        [GtkChild]\n        public unowned Gtk.Button network_leave_button;\n        [GtkChild]\n        public unowned Gtk.Button network_delete_button;\n        [GtkChild]\n        public unowned Gtk.Button network_password_button;\n        [GtkChild]\n        public unowned Gtk.Button network_access_button;\n        [GtkChild]\n        public unowned Gtk.Button network_go_online_button;\n        [GtkChild]\n        public unowned Gtk.Button network_go_offline_button;\n\n        [GtkChild]\n        public unowned Gtk.Button member_approve_button;\n        [GtkChild]\n        public unowned Gtk.Button member_reject_button;\n        [GtkChild]\n        public unowned Gtk.Button member_evict_button;\n\n        [GtkChild]\n        private unowned Gtk.MenuButton member_command_menubutton;\n\n        construct {\n            // Setup member command menubutton\n            member_command_menubutton.menu_model = Command.get_commands_menu ();\n            Command.get_commands_menu ().items_changed.connect (() => {\n                set_member_command_menubutton_visible ();\n                if (member != null) {\n                    Command.set_active_commands_enabled (member);\n                }\n            });\n\n            // Use different leave icon for Yaru and elementary themes\n            var theme_name = Utils.get_icon_theme ().theme_name;\n            if (theme_name.has_prefix (\"Yaru\") || theme_name == \"elementary\") {\n                network_leave_button.icon_name = \"system-log-out-symbolic\";\n            }\n        }\n\n        [GtkCallback]\n        public void set_reveal_sidebar_title () {\n            win.sidebar_title_revealer.reveal_child = (scrolled_window.vadjustment.value >= 24);\n        }\n\n        [GtkCallback]\n        private void on_network_leave () {\n            network.leave ();\n        }\n\n        [GtkCallback]\n        private void on_network_delete () {\n            network.delete ();\n        }\n\n        [GtkCallback]\n        private void on_network_change_password () {\n            network.change_password ();\n        }\n\n        [GtkCallback]\n        private void on_network_change_access () {\n            network.change_access ();\n        }\n\n        [GtkCallback]\n        private void on_network_go_online () {\n            network.go_online ();\n        }\n\n        [GtkCallback]\n        private void on_network_go_offline () {\n            network.go_offline ();\n        }\n\n        [GtkCallback]\n        private void on_member_approve () {\n            member.approve ();\n        }\n\n        [GtkCallback]\n        private void on_member_reject () {\n            member.reject ();\n        }\n\n        [GtkCallback]\n        private void on_member_evict () {\n            member.evict ();\n        }\n\n        private void set_member_command_menubutton_visible () {\n            member_command_menubutton.visible = member != null &&\n                                                member.status.status_int != 3 &&\n                                                Command.get_commands_menu ().get_n_items () > 0;\n        }\n\n        private void set_version () {\n            string ver = Hamachi.version;\n\n            if (ver == null) {\n                ver = _(\"Unavailable\");\n            }\n\n            hamachi_row.set_value (ver);\n        }\n\n        private void set_address () {\n            string[] address = Hamachi.get_address ();\n\n            client_ipv4_row.set_value (address[0]);\n            client_ipv6_row.set_value (address[1]);\n        }\n\n        private void set_client_id () {\n            client_id_row.set_value (Hamachi.get_client_id ());\n        }\n\n        public void set_account (string account) {\n            account_row.title = account.has_suffix (\" (pending)\") ? \"%s (%s)\".printf (_(\"Account\"), _(\"pending\")) : _(\"Account\");\n            account_row.set_value ((account == \"\" || account == \"-\") ? _(\"Not attached\") : account.replace (\" (pending)\", \"\"));\n            attach_button.visible = (account == \"\" || account == \"-\");\n            cancel_button.visible = account.has_suffix (\" (pending)\");\n        }\n\n        public void set_network (Network _network) {\n            network = _network;\n\n            win.sidebar_title.title = network.name;\n\n            int total, online;\n            network.return_member_count (out total, out online);\n\n            network_page.heading              = network.name;\n\n            network_status_row.set_value      (network.status.status_text);\n            network_id_row.set_value          (network.id);\n            network_owner_row.set_value       (network.return_owner_string ());\n            network_members_row.set_value     (_(\"{0} online, {1} total\").replace (\"{0}\", online.to_string ()).replace (\"{1}\", total.to_string ()));\n            network_capacity_row.set_value    (network.capacity.to_string ());\n\n            network_owner_row.show_copy       = network.is_owner == 0;\n            network_leave_button.visible      = network.is_owner == 0;\n            network_delete_button.visible     = network.is_owner == 1;\n            network_password_button.visible   = network.is_owner == 1;\n            network_access_button.visible     = network.is_owner == 1;\n            network_go_online_button.visible  = network.status.status_int == 0;\n            network_go_offline_button.visible = network.status.status_int == 1;\n\n            if (network.is_owner == 1) {\n                network_access_button.remove_css_class (\"success\");\n                network_access_button.remove_css_class (\"warning\");\n                network_access_button.remove_css_class (\"error\");\n                network_access_button.add_css_class (network.lock_state == \"locked\" ? \"error\" : network.approve == \"manual\" ? \"warning\" : \"success\");\n                network_access_button.icon_name = network.lock_state == \"locked\" ? \"changes-prevent-symbolic\" : \"changes-allow-symbolic\";\n            }\n\n            show_page (\"Network\");\n        }\n\n        public void set_member (Member _member) {\n            member = _member;\n\n            win.sidebar_title.title = member.nick;\n\n            member_page.heading              = member.nick;\n\n            member_status_row.set_value      (member.status.status_text);\n            member_id_row.set_value          (member.id);\n            member_ipv4_row.set_value        (member.ipv4);\n            member_ipv6_row.set_value        (member.ipv6);\n            member_tunnel_row.set_value      (member.tunnel);\n            member_connection_row.set_value  (member.status.connection_type);\n\n            member_approve_button.visible    = member.network.is_owner == 1 && member.status.status_int == 3;\n            member_reject_button.visible     = member.network.is_owner == 1 && member.status.status_int == 3;\n            member_evict_button.visible      = member.network.is_owner == 1 && member.status.status_int != 3;\n\n            set_member_command_menubutton_visible ();\n            Command.set_active_commands_enabled (member);\n\n            show_page (\"Member\");\n        }\n\n        public void update () {\n            set_account (Hamachi.get_account ());\n            set_version ();\n            set_address ();\n            set_client_id ();\n\n            if (stack.visible_child_name == \"Network\") {\n                set_network (network);\n            } else if (stack.visible_child_name == \"Member\") {\n                set_member (member);\n            }\n        }\n\n        public void show_page (string page) {\n            if (page == \"Information\") {\n                win.sidebar_title.title = _(\"Information\");\n            }\n\n            stack.visible_child_name = page;\n        }\n    }\n}\n"
  },
  {
    "path": "src/status-notifier-item.vala",
    "content": "/*\n * SNI implementation based on:\n * https://github.com/dino/dino/pull/1209\n *\n * Copyright (C) 2022 Dino contributors\n * Copyright (C) 2024 Stephen Brandt\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\n[DBus (name = \"org.kde.StatusNotifierWatcher\")]\nprivate interface DBusStatusNotifierWatcher : Object {\n    [DBus (name = \"RegisterStatusNotifierItem\")]\n    public abstract async void register_item(string service) throws Error;\n\n    [DBus (name = \"RegisteredStatusNotifierItems\")]\n    public abstract string[] registered_items { owned get; }\n    [DBus (name = \"IsStatusNotifierHostRegistered\")]\n    public abstract bool is_host_registered {  get; }\n    [DBus (name = \"ProtocolVersion\")]\n    public abstract int version {  get; }\n\n    [DBus (name = \"StatusNotifierItemRegistered\")]\n    public signal void item_registered(string service);\n    [DBus (name = \"StatusNotifierItemUnregistered\")]\n    public signal void item_unregistered(string service);\n    [DBus (name = \"StatusNotifierHostRegistered\")]\n    public signal void host_registered();\n    [DBus (name = \"StatusNotifierHostUnregistered\")]\n    public signal void host_unregistered();\n}\n\n[DBus (name = \"org.kde.StatusNotifierItem\")]\nprivate class DBusStatusNotifierItem : Object {\n    private StatusNotifierItem item;\n    private ObjectPath menu_path;\n\n    public DBusStatusNotifierItem(StatusNotifierItem item, ObjectPath? menu_path) {\n        this.item = item;\n        this.menu_path = menu_path ?? new ObjectPath(\"/NO_DBUSMENU\");\n    }\n\n    [DBus (name = \"Category\")]\n    public string category { owned get { return item.category; } }\n    [DBus (name = \"Id\")]\n    public string id { owned get { return item.id; } }\n    [DBus (name = \"Title\")]\n    public string title { owned get { return item.title; } }\n    [DBus (name = \"Status\")]\n    public string status { owned get { return item.status; } }\n    [DBus (name = \"WindowId\")]\n    public int32 window_id { get { return item.window_id; } }\n    [DBus (name = \"IconName\")]\n    public string icon_name { owned get { return item.icon_name; } }\n    [DBus (name = \"OverlayIconName\")]\n    public string overlay_icon_name { owned get { return item.overlay_icon_name ?? \"\"; } }\n    [DBus (name = \"AttentionIconName\")]\n    public string attention_icon_name { owned get { return item.attention_icon_name ?? icon_name; } }\n    [DBus (name = \"ToolTip\")]\n    public DBusStatusNotifierItemToolTip tool_tip { owned get { return item.tool_tip ?? DBusStatusNotifierItemToolTip.empty(); } }\n    [DBus (name = \"ItemIsMenu\")]\n    public bool is_menu { get { return item.is_menu; } }\n    [DBus (name = \"Menu\")]\n    public ObjectPath menu { get { return menu_path; } }\n\n    [DBus (name = \"ContextMenu\")]\n    public void context_menu(int x, int y) throws Error { item.context_menu(x, y); }\n    // Connecting to \"Activate\" causes a delay in opening the menu when using\n    // \"AppIndicator and KStatusNotifierItem Support\" GNOME Shell extension,\n    // because it waits too see if there is a double click\n    //[DBus (name = \"Activate\")]\n    //public void activate(int x, int y) throws Error { item.activate(x, y); }\n    [DBus (name = \"SecondaryActivate\")]\n    public void secondary_activate(int x, int y) throws Error { item.secondary_activate(x, y); }\n    [DBus (name = \"Scroll\")]\n    public void scroll(int delta, string orientation) throws Error { item.scroll(delta, orientation); }\n\n    [DBus (name = \"NewTitle\")]\n    public signal void on_new_title();\n    [DBus (name = \"NewIcon\")]\n    public signal void on_new_icon();\n    [DBus (name = \"NewMenu\")]\n    public signal void on_new_menu();\n    [DBus (name = \"NewToolTip\")]\n    public signal void on_new_tool_tip();\n    [DBus (name = \"NewStatus\")]\n    public signal void on_new_status(string status);\n}\n\n[DBus (name = \"com.canonical.dbusmenu\")]\nprivate class DBusMenu : Object {\n    private StatusNotifierItem item;\n\n    public DBusMenu(StatusNotifierItem item) {\n        this.item = item;\n    }\n\n    [DBus (name = \"Version\")]\n    public uint32 version { get { return 3; } }\n    [DBus (name = \"TextDirection\")]\n    public string text_direction { get { return \"ltr\"; } }\n    [DBus (name = \"Status\")]\n    public string status { get { return \"normal\"; } }\n\n    public static int32[] get_children_ids(int32 parent_id, MenuModel model) {\n        MenuModel local_model = model;\n        int32 local_id = parent_id;\n        if (local_id != 0) {\n            var sub_id = local_id % 0xff - 1;\n            HashTable<string,MenuModel> links;\n            if (local_model.get_n_items() <= sub_id) return {};\n            local_model.get_item_links(sub_id, out links);\n            if (links == null || links.size() == 0) return {};\n            local_model = links.get_values().first().data;\n            local_id = local_id >> 8;\n        }\n        int n = local_model.get_n_items();\n        int32[] arr = new int32[n];\n        for(int i = 0; i < n; i++) {\n            arr[i] = (parent_id << 8) + i + 1;\n        }\n        return arr;\n    }\n\n    private static Gee.Map<string, Variant>? get_properties(int32 id, MenuModel model) {\n        if (id == 0) {\n            Gee.Map<string, Variant> result = new Gee.HashMap<string, Variant>();\n            result[\"children-display\"] = \"submenu\";\n            return result;\n        }\n        MenuModel local_model = model;\n        int32 local_id = id;\n        if (local_id > 0xff) {\n            var sub_id = local_id % 0xff - 1;\n            HashTable<string,MenuModel> links;\n            if (local_model.get_n_items() <= sub_id) return null;\n            local_model.get_item_links(sub_id, out links);\n            if (links == null || links.size() == 0) return null;\n            local_model = links.get_values().first().data;\n            local_id = local_id >> 8;\n        }\n        var sub_id = local_id - 1;\n        if (local_model.get_n_items() <= sub_id) return null;\n        HashTable<string,Variant> attributes;\n        local_model.get_item_attributes(sub_id, out attributes);\n        if (attributes == null) return null;\n        Gee.Map<string, Variant> result = new Gee.HashMap<string, Variant>();\n        attributes.for_each((key, val) => {\n            switch(key) {\n                case \"submenu\": result[\"children-display\"] = \"submenu\"; break;\n                case \"section\": result[\"children-display\"] = \"section\"; break;\n                default: result[key] = val; break;\n            }\n        });\n        return result;\n    }\n\n    public static VariantDict? get_properties_dict(int32 id, MenuModel model, string[] property_names) {\n        var properties = get_properties(id, model);\n        if (properties == null) return null;\n        var dict = new VariantDict();\n        foreach(var entry in properties) {\n            if (entry.key in property_names || property_names.length == 0) {\n                dict.insert_value(entry.key, entry.value);\n            }\n        }\n        return dict;\n    }\n\n    [DBus (name = \"GetLayout\")]\n    public void get_layout(int32 parent_id, int32 recursion_depth, string[] property_names, out uint revision, [DBus (signature = \"(ia{sv}av)\")] out Variant layout) throws Error {\n        var builder = new VariantBuilder(new VariantType(\"(ia{sv}av)\"));\n        builder.add(\"i\", parent_id);\n        var properties = get_properties_dict(parent_id, item.menu_model, property_names) ?? new VariantDict();\n        builder.add_value(properties.end());\n        Variant[] children = {};\n        if (recursion_depth != 0) {\n            int32[] ids = get_children_ids(parent_id, item.menu_model);\n            foreach(int32 id in ids) {\n                Variant child;\n                get_layout(id, recursion_depth - 1, property_names, null, out child);\n                children += new Variant.variant(child);\n            }\n        }\n        builder.add_value(new Variant.array(VariantType.VARIANT, children));\n        revision = item.menu_model_revision;\n        layout = builder.end();\n    }\n\n    [DBus (name = \"GetGroupProperties\")]\n    public void get_group_properties(int32[] ids, string[] property_names, [DBus (signature = \"a(ia{sv})\")] out Variant properties) throws Error {\n        Variant[] items = {};\n        foreach(int32 id in ids) {\n            var properties_dict = get_properties_dict(id, item.menu_model, property_names);\n            if (properties_dict != null) {\n                var builder = new VariantBuilder(new VariantType(\"(ia{sv})\"));\n                builder.add(\"i\", id);\n                builder.add_value(properties_dict.end());\n                items += builder.end();\n            }\n        }\n        properties = new Variant.array(new VariantType(\"(ia{sv})\"), items);\n    }\n\n    [DBus (name = \"GetProperty\")]\n    public new void get_property(int32 id, string name, out Variant value) throws Error {\n        var properties = get_properties(id, item.menu_model);\n        if (properties != null && properties.has_key(name)) {\n            value = properties[name];\n        } else {\n            value = null;\n        }\n    }\n\n    private bool resolve_event(int32 id, string event_id, Variant data, uint32 timestamp) throws Error {\n        if (event_id == \"clicked\") {\n            if (id == 0) return false;\n            MenuModel local_model = item.menu_model;\n            int32 local_id = id;\n            if (local_id > 0xff) {\n                var sub_id = local_id % 0xff - 1;\n                HashTable<string,MenuModel> links;\n                if (local_model.get_n_items() <= sub_id) return false;\n                local_model.get_item_links(sub_id, out links);\n                if (links == null || links.size() == 0) return false;\n                local_model = links.get_values().first().data;\n                local_id = local_id >> 8;\n            }\n            var sub_id = local_id - 1;\n            if (local_model.get_n_items() <= sub_id) return false;\n            Variant? action_variant = local_model.get_item_attribute_value(sub_id, \"action\", VariantType.STRING);\n            if (action_variant == null) return false;\n            size_t action_length;\n            unowned string actionu = action_variant.get_string(out action_length);\n            string detailed_action = actionu.substring(0, (long) action_length);\n            string action;\n            Variant parameter;\n            Action.parse_detailed_name(detailed_action, out action, out parameter);\n            if (action.has_prefix(\"app.\")) {\n                GLib.Application.get_default().activate_action(action.substring(4), parameter);\n            } else {\n                warning(\"Unknown action: %s\", action);\n                return false;\n            }\n        } else {\n            return false;\n        }\n        return true;\n    }\n\n    [DBus (name = \"Event\")]\n    public void event(int32 id, string event_id, Variant data, uint32 timestamp) throws Error {\n        resolve_event(id, event_id, data, timestamp);\n    }\n\n    [DBus (name = \"EventGroup\")]\n    public int[] event_group(DBusMenuEventStruct[] events) throws Error\n    {\n        var ret = new Gee.ArrayList<int>();\n        foreach(var ev in events) {\n            if (!resolve_event(ev.id, ev.event_id, ev.data, ev.timestamp)) {\n                ret.add(ev.id);\n            }\n        }\n\n        if (ret.size == events.length) {\n            throw new DBusError.INVALID_ARGS(\"None of the events were valid.\");\n        }\n\n        return ret.to_array();\n    }\n\n    public struct DBusMenuEventStruct {\n        public int id;\n        public string event_id;\n        public GLib.Variant data;\n        public uint timestamp;\n    }\n\n    [DBus (name = \"AboutToShow\")]\n    public bool about_to_show(int32 id) throws Error {\n        return false;\n    }\n\n    [DBus (name = \"ItemsPropertiesUpdated\")]\n    public signal void item_properties_updated([DBus (signature = \"a(ia{sv})\")] Variant updated_properties, [DBus (signature = \"a(ias)\")] Variant removed_properties);\n    [DBus (name = \"LayoutUpdated\")]\n    public signal void layout_updated(uint32 revision, int32 parent);\n    [DBus (name = \"ItemActivationRequested\")]\n    public signal void item_activation_requested(int32 id, uint32 timestamp);\n}\n\npublic struct DBusStatusNotifierIconData {\n    public int width;\n    public int height;\n    public uint8[] data;\n}\n\npublic struct DBusStatusNotifierItemToolTip {\n    public string icon_name;\n    public DBusStatusNotifierIconData[] icon;\n    public string title;\n    public string body;\n\n    public static DBusStatusNotifierItemToolTip empty() {\n        return { \"\", {}, \"\", \"\" };\n    }\n}\n\npublic class StatusNotifierItem : Object {\n    public string id { get; set; }\n    public string title { get; set; }\n    public string category { get; set; }\n    public string status { get; set; }\n    public int32 window_id { get; set; }\n    public bool is_menu { get; set; }\n    public bool host_registered { get; set; }\n    public string icon_name { get; set; }\n    public string? overlay_icon_name { get; set; }\n    public string? attention_icon_name { get; set; }\n    public DBusStatusNotifierItemToolTip? tool_tip { get; set; }\n    public MenuModel? menu_model { get; set; }\n    public uint32 menu_model_revision = 1;\n\n    public signal void context_menu(int x, int y);\n    public signal void activate(int x, int y);\n    public signal void secondary_activate(int x, int y);\n    public signal void scroll(int delta, string orientation);\n\n    private DBusStatusNotifierItem dbus_item;\n    private DBusMenu dbus_menu;\n    private string name { owned get { return id; } }\n    private bool registered;\n    private uint name_owner_id;\n    private DBusConnection dbus_connection;\n    private uint dbus_item_registration_id;\n    private uint dbus_menu_registration_id;\n    private DBusStatusNotifierWatcher watcher;\n\n    private void on_bus_acquired(DBusConnection dbus_connection) {\n        try {\n            this.dbus_connection = dbus_connection;\n            if (menu_model == null) dbus_menu = null;\n            if (menu_model != null && dbus_menu == null) dbus_menu = new DBusMenu(this);\n            if (dbus_menu != null) dbus_menu_registration_id = dbus_connection.register_object(\"/StatusNotifierMenu\", dbus_menu);\n            if (dbus_item == null) dbus_item = new DBusStatusNotifierItem(this, dbus_menu != null ? new ObjectPath(\"/StatusNotifierMenu\") : null);\n            dbus_item_registration_id = dbus_connection.register_object(\"/StatusNotifierItem\", dbus_item);\n            notify[\"title\"].connect((o, _) => ((StatusNotifierItem)o).dbus_item.on_new_title());\n            notify[\"icon-name\"].connect((o, _) => ((StatusNotifierItem)o).dbus_item.on_new_icon());\n            notify[\"menu\"].connect((o, _) => ((StatusNotifierItem)o).dbus_item.on_new_menu());\n            notify[\"tool-tip\"].connect((o, _) => ((StatusNotifierItem)o).dbus_item.on_new_tool_tip());\n            notify[\"status\"].connect((o, _) => ((StatusNotifierItem)o).dbus_item.on_new_status(((StatusNotifierItem)o).status));\n            notify[\"menu-model\"].connect((o, _) => {\n                ((StatusNotifierItem)o).dbus_menu.layout_updated(++((StatusNotifierItem)o).menu_model_revision, 0);\n                try {\n                    var item = ((StatusNotifierItem)o);\n                    var menu = item.dbus_menu;\n                    Variant properties;\n                    menu.get_group_properties(DBusMenu.get_children_ids(0, item.menu_model), {}, out properties);\n                    menu.item_properties_updated(properties, new Variant.array(new VariantType(\"(ia{sv})\"), {}));\n                } catch (Error e) {\n                    critical(e.message);\n                }\n            });\n        } catch (IOError e) {\n            critical(\"on_bus_acquired: %s\", e.message);\n        }\n    }\n\n    private void on_name_acquired (DBusConnection dbus_connection) {\n        try {\n            watcher = Bus.get_proxy_sync(BusType.SESSION, \"org.kde.StatusNotifierWatcher\", \"/StatusNotifierWatcher\");\n            watcher.host_registered.connect(() => host_registered = true);\n            watcher.host_unregistered.connect(() => host_registered = false);\n            host_registered = watcher.is_host_registered;\n        } catch (IOError e) {\n            critical(\"on_name_acquired: %s\", e.message);\n        }\n    }\n\n    public void init() {\n        if (id == null) critical(\"StatusNotifierItem.id not set before initializing\");\n        name_owner_id = Bus.own_name(BusType.SESSION, name, BusNameOwnerFlags.NONE, on_bus_acquired, on_name_acquired, () => warning(\"Could not acquire name: %s\", name));\n    }\n\n    public void register() {\n        if (watcher == null || registered) return;\n        watcher.register_item.begin(name);\n        registered = true;\n    }\n\n    public void unregister() {\n        if (!registered) return;\n        if (name_owner_id != 0) Bus.unown_name(name_owner_id);\n        name_owner_id = 0;\n        if (dbus_item_registration_id != 0 && dbus_connection != null) dbus_connection.unregister_object(dbus_item_registration_id);\n        if (dbus_menu_registration_id != 0 && dbus_connection != null) dbus_connection.unregister_object(dbus_menu_registration_id);\n        dbus_item_registration_id = 0;\n        dbus_menu_registration_id = 0;\n        dbus_connection = null;\n        registered = false;\n    }\n}\n"
  },
  {
    "path": "src/status.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\npublic class Status : Object {\n    public int    status_int;\n    public string status_text;\n    public string status_sortable;\n    public string message;\n    public string connection_type;\n\n    public Status (string status) {\n        message = \"\";\n        connection_type = \"\";\n        set_status (status);\n    }\n\n    public Status.complete (string status, string? connection, string? _message) {\n        message = _message;\n        set_connection_type (connection);\n        set_status (status);\n    }\n\n    public void set_status (string status) {\n        if (status == \" \") {\n            status_int = 0;\n            status_text = _(\"Offline\");\n            status_sortable = \"f\";\n        } else if (status == \"*\") {\n            status_int = 1;\n            status_text = _(\"Online\");\n\n            if (connection_type == _(\"Relayed\")) {\n                status_sortable = \"b\";\n            } else {\n                status_sortable = \"a\";\n            }\n        } else if (status == \"x\") {\n            status_int = 2;\n            status_text = _(\"Unreachable\");\n            status_sortable = \"d\";\n        } else if (status == \"?\") {\n            status_int = 3;\n            status_text = _(\"Awaiting approval\");\n            status_sortable = \"c\";\n        } else if (status == \"!\") {\n            status_int = 4;\n            status_text = _(\"Unknown error\");\n            status_sortable = \"e\";\n\n            if (message == \"IP protocol mismatch between you and peer\") {\n                status_text = _(\"Protocol mismatch\");\n            } else if (message == \"This address is also used by another peer\") {\n                status_text = _(\"Conflicting address\");\n            }\n        }\n    }\n\n    private void set_connection_type (string? connection) {\n        connection_type = \"\";\n\n        if (connection == null) {\n            return;\n        } else if (connection == \"direct\") {\n            connection_type = _(\"Direct\");\n        } else if (connection.contains (\"via \")) {\n            connection_type = _(\"Relayed\");\n        }\n    }\n\n    public string get_css_classes () {\n        string icon_name = \"\";\n\n        if (status_int == 0) {\n            icon_name = \"network-node-offline\";\n        } if (status_int == 1) {\n            if (connection_type == _(\"Relayed\")) {\n                icon_name = \"network-node-online-relayed\";\n            } else {\n                icon_name = \"network-node-online\";\n            }\n        } else if (status_int == 2) {\n            icon_name = \"network-node-unreachable\";\n        } else if (status_int == 3) {\n            icon_name = \"network-node-unapproved\";\n        } else if (status_int == 4) {\n            icon_name = \"network-node-error\";\n        }\n\n        return icon_name;\n    }\n}\n"
  },
  {
    "path": "src/utils.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    public class Utils : Object {\n        public static string remove_mnemonics (owned string label) {\n            try {\n                label = new Regex (\"\"\"\\(_[a-zA-Z]\\)\"\"\").replace (label, -1, 0, \"\"); // Japanese translations\n                label = label.replace (\"_\", \"\");                                    // All other translations\n            } catch (RegexError e) {\n                critical (\"remove_mnemonics: %s\", e.message);\n            }\n\n            return label;\n        }\n\n        public static string clean_string (owned string _string) {\n            _string = _string.replace (\"\\\\\", \"\\\\\\\\\");\n            _string = _string.replace (\"\\\"\", \"\\\\\\\"\");\n\n            return _string;\n        }\n\n        public static string parse_nick (string nick) {\n            var parsed_nick = nick;\n\n            if (nick == \"%USERNAME\") {\n                parsed_nick = Environment.get_user_name ();\n            } else if (nick == \"%REALNAME\") {\n                parsed_nick = Environment.get_real_name ();\n            } else if (nick == \"%HOSTNAME\") {\n                parsed_nick = Environment.get_host_name ();\n            }\n\n            return parsed_nick;\n        }\n\n        public static unowned Gtk.IconTheme get_icon_theme () {\n            return Gtk.IconTheme.get_for_display (Gdk.Display.get_default ());\n        }\n\n        public static string get_available_theme_icon (string[] icon_names) {\n            var icon_theme = get_icon_theme ();\n\n            // Check each icon name in the list for existence, and return immediately if it does\n            foreach (string icon_name in icon_names) {\n                if (icon_theme.has_icon (icon_name)) {\n                    return icon_name;\n                }\n            }\n\n            // Return the first icon name as fallback\n            return icon_names[0];\n        }\n\n        public static bool path_exists (string type, string path) {\n            var result = FileUtils.test (path, FileTest.EXISTS);\n            debug (\"path_exists: FileUtils tested %s for path %s\", result.to_string (), path);\n\n            if (result) {\n                return true;\n            }\n\n            if (Xdp.Portal.running_under_flatpak ()) {\n                string output = Command.return_output (\"bash -c \\\"test -%s %s &>/dev/null || echo 'path not found'\\\"\".printf (type, path));\n                debug (\"path_exists test output: %s\", output);\n\n                if (!output.contains (\"path not found\")) {\n                    return true;\n                }\n            }\n\n            debug (\"path_exists: Path %s was not found\", path);\n            return false;\n        }\n\n        public static string get_debug_info () {\n            var gtk_settings = Gtk.Settings.get_default ();\n\n            var kernel   = Command.return_output (\"uname -sri\").strip ();\n            var distro   = Command.return_output (\"awk -F= '/^PRETTY_NAME/ {gsub(/\\\"/,\\\"\\\"); print $2}' /etc/os-release\").strip ();\n            var initsys  = Command.return_output (\"ps -p 1 -o comm=\").strip ();\n            var engine   = Command.return_output (\"cat %s\".printf (Hamachi.CONFIG_PATH));\n\n            return \"\"\"\nHaguichi: %s\nDistribution: %s\nKernel: %s\nVala: %s\nGLib: %s.%s.%s\nGTK: %s.%s.%s\nAdwaita: %s\nColor scheme: %s\nAccent color: %s\nHigh contrast: %s\nTheme: %s\nIcons: %s\nFont: %s\nDecoration layout: %s\nLocale: %s\nDesktop: %s\nSession: %s\nFlatpak: %s\nHamachi: %s\nIP mode: %s\nService: %s\nInit: %s\nSudo: %s\nTerminal: %s\nFile manager: %s\nRemote desktop: %s\nEngine override:\n%s\"\"\".printf (\n                Config.VERSION,\n                distro,\n                kernel,\n                Config.VALA_VERSION,\n                Version.MAJOR.to_string (),\n                Version.MINOR.to_string (),\n                Version.MICRO.to_string (),\n                Gtk.MAJOR_VERSION.to_string (),\n                Gtk.MINOR_VERSION.to_string (),\n                Gtk.MICRO_VERSION.to_string (),\n                Adw.VERSION_S,\n                app.style_manager.color_scheme.to_string ().replace (\"ADW_COLOR_SCHEME_\", \"\").down (),\n#if ADW_1_6\n                app.style_manager.accent_color.to_string ().replace (\"ADW_ACCENT_COLOR_\", \"\").down (),\n#else\n                \"(not available)\",\n#endif\n                app.style_manager.high_contrast.to_string (),\n                gtk_settings.gtk_theme_name,\n                gtk_settings.gtk_icon_theme_name,\n                gtk_settings.gtk_font_name,\n                gtk_settings.gtk_decoration_layout,\n                Environment.get_variable (\"LANG\"),\n                Environment.get_variable (\"XDG_CURRENT_DESKTOP\"),\n                Environment.get_variable (\"XDG_SESSION_TYPE\"),\n                Xdp.Portal.running_under_flatpak ().to_string (),\n                Hamachi.version,\n                Hamachi.ip_version,\n                Hamachi.service,\n                initsys,\n                Command.sudo,\n                Command.exists (Command.terminal)       ? Command.terminal       : null,\n                Command.exists (Command.file_manager)   ? Command.file_manager   : null,\n                Command.exists (Command.remote_desktop) ? Command.remote_desktop : null,\n                engine\n            ).chug ();\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/command-entry-row.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/command-entry-row.ui\")]\n    public class CommandEntryRow : Adw.EntryRow {\n        [GtkChild]\n        public unowned Gtk.MenuButton menu_button;\n\n        [GtkChild]\n        public unowned CommandVariableButton address_var;\n        [GtkChild]\n        public unowned CommandVariableButton nickname_var;\n        [GtkChild]\n        public unowned CommandVariableButton client_id_var;\n        [GtkChild]\n        public unowned CommandVariableButton terminal_var;\n        [GtkChild]\n        public unowned CommandVariableButton file_manager_var;\n        [GtkChild]\n        public unowned CommandVariableButton remote_desktop_var;\n    }\n}\n"
  },
  {
    "path": "src/widgets/command-variable-button.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/command-variable-button.ui\")]\n    public class CommandVariableButton : Gtk.Button {\n        [GtkChild]\n        unowned Gtk.Label title_label;\n        [GtkChild]\n        unowned Gtk.Label variable_label;\n\n        public string title {\n            get {\n                return title_label.label;\n            }\n            set {\n                title_label.label = value;\n            }\n        }\n\n        public string variable {\n            get {\n                return variable_label.label;\n            }\n            set {\n                variable_label.label = value;\n            }\n        }\n\n        [GtkCallback]\n        private void on_insert_value () {\n            // Find menu button and close popover\n            var menu_button = (Gtk.MenuButton) get_ancestor (typeof (Gtk.MenuButton));\n            menu_button.popdown ();\n\n            // Find entry and insert variable at cursor position\n            var entry = (Adw.EntryRow) get_ancestor (typeof (Adw.EntryRow));\n            var position = entry.cursor_position;\n            entry.do_insert_text (variable, -1, ref position);\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/commands-editor-row.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/commands-editor-row.ui\")]\n    public class CommandsEditorRow : Adw.ActionRow {\n        private CommandsEditor editor;\n\n        private double drag_x = 0;\n        private double drag_y = 0;\n\n        public bool   is_active;\n        public bool   is_default;\n        public string label;\n        public string command_ipv4;\n        public string command_ipv6;\n        public string priority;\n\n        [GtkChild]\n        unowned Gtk.Image drag_handle;\n        [GtkChild]\n        unowned Gtk.Image default_emblem;\n        [GtkChild]\n        unowned Gtk.Switch command_switch;\n        [GtkChild]\n        unowned Gtk.MenuButton command_menu_button;\n\n        construct {\n            install_action (\"row.open-menu\",   null, (Gtk.WidgetActionActivateFunc) on_open_menu);\n            install_action (\"row.edit\",        null, (Gtk.WidgetActionActivateFunc) on_edit);\n            install_action (\"row.duplicate\",   null, (Gtk.WidgetActionActivateFunc) on_duplicate);\n            install_action (\"row.move-up\",     null, (Gtk.WidgetActionActivateFunc) on_move_up);\n            install_action (\"row.move-down\",   null, (Gtk.WidgetActionActivateFunc) on_move_down);\n            install_action (\"row.set-default\", null, (Gtk.WidgetActionActivateFunc) on_set_deault);\n            install_action (\"row.remove\",      null, (Gtk.WidgetActionActivateFunc) on_remove);\n\n            drag_handle.icon_name = Utils.get_available_theme_icon ({\n                \"list-drag-handle-symbolic\",\n                \"drag-handle-symbolic\"\n            });\n\n            default_emblem.icon_name = Utils.get_available_theme_icon ({\n                \"object-select-symbolic\",\n                \"emblem-default-symbolic\",\n                \"emblem-ok-symbolic\",\n                \"selection-mode-symbolic\"\n            });\n        }\n\n        public CommandsEditorRow (CommandsEditor _editor, bool _is_active, bool _is_default, string _label, string _command_ipv4, string _command_ipv6, string _priority) {\n            editor     = _editor;\n            is_active  = _is_active;\n            is_default = _is_default;\n\n            command_switch.active = is_active;\n            command_switch.state_set.connect ((state) => {\n                is_active = state;\n                editor.update_commands ();\n                return false;\n            });\n\n            update (_label, _command_ipv4, _command_ipv6, _priority);\n            set_default (is_default);\n        }\n\n        public void on_open_menu () {\n            command_menu_button.popup ();\n        }\n\n        public void on_edit () {\n            editor.edit_command (this);\n        }\n\n        public void on_duplicate () {\n            editor.duplicate_command (this);\n        }\n\n        public void on_move_up () {\n            editor.move_command (this, get_index () - 1);\n        }\n\n        public void on_move_down () {\n            editor.move_command (this, get_index () + 1);\n        }\n\n        public void on_set_deault () {\n            editor.set_default (this);\n        }\n\n        public void on_remove () {\n            editor.remove_command (this);\n        }\n\n        [GtkCallback]\n        public Gdk.ContentProvider on_drag_prepare (double x, double y) {\n            drag_x = x;\n            drag_y = y;\n\n            return new Gdk.ContentProvider.for_value (this);\n        }\n\n        [GtkCallback]\n        public void on_drag_begin (Gtk.DragSource source, Gdk.Drag drag) {\n            drag.set_hotspot ((int) drag_x, (int) drag_y);\n\n            var drag_row = new CommandsEditorRow (editor, is_active, is_default, label, command_ipv4, command_ipv6, priority);\n            // Property 'use_underline' with value 'true' triggers a segmentation fault here,\n            // so turn it off and remove underscores manually\n            drag_row.use_underline = false;\n            drag_row.title = _(label).replace (\"_\", \"\");\n\n            var drag_widget = new Gtk.ListBox ();\n            drag_widget.set_size_request (get_width (), get_height ());\n#if FOR_ELEMENTARY\n            // Add \"boxed-list\" class to get some styling on our dragged row\n            drag_widget.add_css_class (\"boxed-list\");\n#endif\n            drag_widget.append (drag_row);\n            drag_widget.drag_highlight_row (drag_row);\n\n            var icon = (Gtk.DragIcon)\n#if VALA_0_56_19\n                new\n#endif\n                Gtk.DragIcon.get_for_drag (drag);\n            icon.child = drag_widget;\n        }\n\n        [GtkCallback]\n        public bool on_drop (Gtk.DropTarget target, GLib.Value val, double x, double y) {\n            var row = (CommandsEditorRow) val;\n\n            if (row == this) {\n                // Do nothing if dropped onto itself\n                return false;\n            } else {\n                // Move dropped row to index of this\n                editor.move_command (row, get_index ());\n                return true;\n            }\n        }\n\n        public void update (string _label, string _command_ipv4, string _command_ipv6, string _priority) {\n            label        = _label;\n            command_ipv4 = _command_ipv4;\n            command_ipv6 = _command_ipv6;\n            priority     = _priority;\n\n            string command = (priority == \"IPv6\") ? command_ipv6 : command_ipv4;\n            string address = (priority == \"IPv6\") ? \"2620:9b::56d:f78e\" : \"25.123.456.78\";\n\n            title    = _(_label);\n            subtitle = Command.replace_variables (command, address, \"Nick\", \"090-123-456\");\n        }\n\n        public void set_default (bool _is_default) {\n            is_default = _is_default;\n            default_emblem.visible = is_default;\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/commands-editor.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/commands-editor.ui\")]\n    public class CommandsEditor : Adw.PreferencesGroup {\n        private Settings settings;\n        private string[] default_commands;\n        private string[] undo_remove_commands_string;\n        private List<CommandsEditorRow> rows;\n        private CommandsEditorRow selected_row;\n        private ConfirmDialog dialog;\n        private int insert_position;\n        private Adw.Toast toast;\n\n        [GtkChild]\n        unowned Gtk.Button restore_button;\n        [GtkChild]\n        unowned Gtk.ListBox list_box;\n\n        construct {\n            settings = new Settings (Config.APP_ID + \".commands\");\n            default_commands = (string[]) settings.get_default_value (\"customizable\");\n\n            rows = new List<CommandsEditorRow> ();\n\n            populate ();\n            set_button_sensitivity (compose_commands_string ());\n        }\n\n        [GtkCallback]\n        private void on_row_activated (Gtk.ListBoxRow row) {\n            if (row.get_index () == (int) rows.length ()) {\n                on_add_command ();\n            } else {\n                edit_command ((CommandsEditorRow) row);\n            }\n        }\n\n        [GtkCallback]\n        private void on_add_command () {\n            // Insert new command at the end of the list\n            insert_position = (int) rows.length ();\n            new Haguichi.AddEditCommandDialog (\"Add\", this, \"\", \"\", \"\", \"IPv4\");\n        }\n\n        [GtkCallback]\n        private void on_restore_commands () {\n            var parent = (Adw.Dialog) get_ancestor (typeof (Adw.Dialog));\n            dialog = new ConfirmDialog (parent,\n                                        _(\"Restore default commands?\"),\n                                        _(\"All customizations will be lost.\"),\n                                        _(\"_Restore\"),\n                                        Adw.ResponseAppearance.DESTRUCTIVE);\n            dialog.confirm.connect (() => {\n                refill (default_commands);\n            });\n        }\n\n        private void undo_remove () {\n            refill (undo_remove_commands_string);\n        }\n\n        private void refill (string[] commands_string) {\n            settings.set_strv (\"customizable\", commands_string);\n            populate ();\n            update_commands ();\n        }\n\n        public void set_default (CommandsEditorRow default_row) {\n            foreach (CommandsEditorRow row in rows) {\n                row.set_default (row == default_row);\n            }\n\n            update_commands ();\n        }\n\n        public void move_command (CommandsEditorRow row, int new_index) {\n            // Remove the row and insert at new index\n            rows.remove (row);\n            rows.insert (row, new_index);\n            list_box.remove (row);\n            list_box.insert (row, new_index);\n\n            update_commands ();\n        }\n\n        public void remove_command (CommandsEditorRow row) {\n            undo_remove_commands_string = compose_commands_string ();\n\n            rows.remove (row);\n            list_box.remove (row);\n\n            update_commands ();\n\n            toast = new Adw.Toast (_(\"Removed command “%s”\").printf (Utils.remove_mnemonics (_(row.label)))) {\n                use_markup = false\n            };\n            toast.button_label = _(\"_Undo\");\n            toast.button_clicked.connect (() => {\n                undo_remove ();\n            });\n\n            var dialog = (Adw.PreferencesDialog) get_ancestor (typeof (Adw.PreferencesDialog));\n            dialog.add_toast (toast);\n        }\n\n        public void update_selected_command (string label, string command_ipv4, string command_ipv6, string priority) {\n            selected_row.update (label, command_ipv4, command_ipv6, priority);\n\n            update_commands ();\n        }\n\n        public void insert_command (string label, string command_ipv4, string command_ipv6, string priority) {\n            var row = new CommandsEditorRow (this, true, false, label, command_ipv4, command_ipv6, priority);\n\n            rows.insert (row, insert_position);\n            list_box.insert (row, insert_position);\n\n            update_commands ();\n        }\n\n        public void edit_command (CommandsEditorRow row) {\n            selected_row = row;\n            new Haguichi.AddEditCommandDialog (\"Edit\", this, _(row.label), row.command_ipv4, row.command_ipv6, row.priority);\n        }\n\n        public void duplicate_command (CommandsEditorRow row) {\n            // Insert duplicated command after the original\n            insert_position = row.get_index () + 1;\n            new Haguichi.AddEditCommandDialog (\"Add\", this, _(row.label), row.command_ipv4, row.command_ipv6, row.priority);\n        }\n\n        private void clear () {\n            foreach (CommandsEditorRow row in rows) {\n                list_box.remove (row);\n            }\n\n            rows = new List<CommandsEditorRow> ();\n        }\n\n        public void populate () {\n            clear ();\n\n            string[] commands = settings.get_strv (\"customizable\");\n\n            var index = 0;\n            foreach (string command in commands) {\n                string[] parts = command.split (\";\", 6);\n\n                if (parts.length == 6) {\n                    bool is_active  = bool.parse (parts[0]);\n                    bool is_default = bool.parse (parts[1]);\n\n                    string command_ipv4 = parts[3];\n                    string command_ipv6 = parts[4];\n                    string priority     = parts[5];\n\n                    command_ipv4 = command_ipv4.replace (\"{COLON}\", \";\");\n                    command_ipv6 = command_ipv6.replace (\"{COLON}\", \";\");\n\n                    var row = new CommandsEditorRow (this, is_active, is_default, parts[2], command_ipv4, command_ipv6, priority);\n                    rows.append (row);\n\n                    list_box.insert (row, index);\n                    index ++;\n                }\n            }\n        }\n\n        public void update_commands () {\n            if (toast != null) {\n                toast.dismiss ();\n            }\n\n            var commands_string = compose_commands_string ();\n            set_button_sensitivity (commands_string);\n            settings.set_strv (\"customizable\", commands_string);\n\n            Command.fill_custom_commands ();\n        }\n\n        private string[] compose_commands_string () {\n            string[] commands_string = {};\n\n            foreach (CommandsEditorRow row in rows) {\n                commands_string += compose_command_string (row);\n            }\n\n            return commands_string;\n        }\n\n        private string compose_command_string (CommandsEditorRow row) {\n            string command_ipv4 = row.command_ipv4.replace (\";\", \"{COLON}\");\n            string command_ipv6 = row.command_ipv6.replace (\";\", \"{COLON}\");\n\n            return string.join (\";\",\n                row.is_active.to_string (),\n                row.is_default.to_string (),\n                row.label,\n                command_ipv4,\n                command_ipv6,\n                row.priority.to_string ());\n        }\n\n        private void set_button_sensitivity (string[] commands_string) {\n            // Set restore button sensitive if the current commands are different than the default\n            restore_button.sensitive = (string.joinv (\"\", commands_string) != string.joinv (\"\", default_commands));\n\n            // Update enabled state for row actions\n            var total = (int) rows.length () - 1;\n            foreach (CommandsEditorRow row in rows) {\n                var index = row.get_index ();\n                row.action_set_enabled (\"row.move-up\",     index > 0);\n                row.action_set_enabled (\"row.move-down\",   index < total);\n                row.action_set_enabled (\"row.set-default\", !row.is_default);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/sidebar-page.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2025 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/sidebar-page.ui\")]\n    public class SidebarPage : Gtk.Box, Gtk.Buildable {\n        [GtkChild]\n        unowned Gtk.Label label;\n        [GtkChild]\n        unowned Gtk.ListBox list_box;\n\n#if FOR_ELEMENTARY\n        construct {\n            label.margin_start = 12;\n            label.margin_end = 12;\n\n            list_box.add_css_class (\"rich-list\");\n        }\n#endif\n\n        public string heading {\n            get {\n                return label.label;\n            }\n            set {\n                label.label = value;\n            }\n        }\n\n        public bool heading_selectable {\n            get {\n                return label.selectable;\n            }\n            set {\n                label.selectable = value;\n            }\n        }\n\n        public void add_child (Gtk.Builder builder, Object child, string? type) {\n            if (type == \"row\") {\n                list_box.add_child (builder, child, type);\n                return;\n            }\n\n            base.add_child (builder, child, type);\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/sidebar-row.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/widgets/sidebar-row.ui\")]\n    public class SidebarRow : Adw.ActionRow, Gtk.Buildable {\n        [GtkChild]\n        unowned Gtk.Button copy_button;\n\n        public void set_value (string? value) {\n            subtitle = value == null ? \"\" : value;\n            visible = (value != null && value != \"\");\n        }\n\n        public bool show_copy {\n            get {\n                return copy_button.visible;\n            }\n            set {\n                copy_button.visible = value;\n            }\n        }\n\n        [GtkCallback]\n        private void on_copy_value () {\n            win.get_clipboard ().set_text (subtitle);\n            win.show_copied_to_clipboard_toast ();\n        }\n    }\n}\n"
  },
  {
    "path": "src/widgets/throbber.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2024 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\n#if ADW_1_6\nusing Adw;\n#else\nusing Gtk;\n#endif\n\nnamespace Haguichi {\n    public class Throbber : Adw.Bin {\n        public Spinner spinner;\n\n        construct {\n            spinner = new Spinner () {\n                width_request = 20,\n                height_request = 20\n            };\n            set_child (spinner);\n        }\n\n        public bool spinning {\n#if ADW_1_6\n            get; set;\n#else\n            get {\n                return spinner.spinning;\n            }\n            set {\n                spinner.spinning = value;\n            }\n#endif\n        }\n    }\n}\n"
  },
  {
    "path": "src/window.vala",
    "content": "/*\n * This file is part of Haguichi, a graphical frontend for Hamachi.\n * Copyright (C) 2007-2026 Stephen Brandt <stephen@stephenbrandt.com>\n *\n * Haguichi is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published\n * by the Free Software Foundation, either version 3 of the License,\n * or (at your option) any later version.\n *\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n\nusing Config;\n\nnamespace Haguichi {\n    [GtkTemplate (ui = \"/com/github/ztefn/haguichi/ui/window.ui\")]\n    public class Window : Adw.ApplicationWindow {\n        [GtkChild]\n        private unowned Adw.ToastOverlay toast_overlay;\n\n        [GtkChild]\n        public unowned Adw.OverlaySplitView split_view;\n        [GtkChild]\n        public unowned Adw.WindowTitle window_title;\n        [GtkChild]\n        public unowned Adw.StatusPage not_installed_status_page;\n        [GtkChild]\n        public unowned Sidebar sidebar;\n        [GtkChild]\n        public unowned Gtk.Revealer sidebar_title_revealer;\n        [GtkChild]\n        public unowned Adw.WindowTitle sidebar_title;\n        [GtkChild]\n        public unowned NetworkList network_list;\n        [GtkChild]\n        private unowned Gtk.Button refresh_button;\n        [GtkChild]\n        public unowned Gtk.ToggleButton connect_button;\n        [GtkChild]\n        public unowned Gtk.ToggleButton disconnect_button;\n        [GtkChild]\n        public unowned Gtk.ToggleButton search_button;\n        [GtkChild]\n        public unowned Gtk.SearchBar search_bar;\n        [GtkChild]\n        public unowned Gtk.SearchEntry search_entry;\n        [GtkChild]\n        public unowned Gtk.Stack stack;\n        [GtkChild]\n        public unowned Gtk.Stack connected_stack;\n        [GtkChild]\n        public unowned Gtk.Stack disconnected_stack;\n        [GtkChild]\n        public unowned Adw.StatusPage restore_status_page;\n\n        [GtkChild]\n        public unowned Throbber throbber;\n\n        [GtkChild]\n        private unowned Gtk.Button configure_button;\n\n        [GtkChild]\n        private unowned Gtk.Button overlay_refresh_button;\n        [GtkChild]\n        private unowned Gtk.MenuButton overlay_add_network_button;\n\n        private Xdp.Portal portal = new Xdp.Portal ();\n\n        public Gtk.Widget modal_dialog;\n\n#if FOR_ELEMENTARY\n        private static Gtk.CssProvider provider;\n\n        [GtkChild]\n        public unowned Adw.HeaderBar header_bar;\n#endif\n\n        public Window (Application app) {\n            Object (application: app, title: APP_NAME, icon_name: APP_ID);\n\n            var config = new Settings (APP_ID + \".config\");\n            var list   = new Settings (APP_ID + \".network-list\");\n            var ui     = new Settings (APP_ID + \".ui\");\n\n            set_nick (demo_mode ? \"Joe Demo\" : Utils.parse_nick (config.get_string (\"nickname\")));\n\n            var sort_by = list.create_action (\"sort-by\");\n            add_action (sort_by);\n\n            var show_offline_members = list.create_action (\"show-offline-members\");\n            add_action (show_offline_members);\n\n            app.set_color_scheme ((int) ui.get_enum (\"color-scheme\"));\n\n#if ADW_1_7\n            add_css_class (\"adw-1-7\");\n#endif\n            if (strv_contains (Intl.get_language_names (), \"ru\")) {\n                add_css_class (\"custom\");\n            }\n\n#if FOR_ELEMENTARY\n            // Update stylesheet when dark mode is turned on or off\n            Adw.StyleManager.get_default ().notify[\"dark\"].connect (load_stylesheet);\n            load_stylesheet ();\n\n            // Move search button to the right because the close button takes up a lot of space on the left\n            search_button.unparent ();\n            header_bar.pack_end (search_button);\n            ((Gtk.Box) search_button.get_ancestor (typeof (Gtk.Box))).spacing = 0;\n\n            // Add CSS classes to toggle button inside the menu button to get correct styling\n            var toggle_button = (Gtk.ToggleButton) overlay_add_network_button.get_first_child ();\n            toggle_button.add_css_class (\"circular\");\n            toggle_button.add_css_class (\"suggested-action\");\n#endif\n\n            default_width  = ui.get_int (\"width\");\n            default_height = ui.get_int (\"height\");\n\n            ui.bind (\"width\",  this, \"default-width\",  DEFAULT);\n            ui.bind (\"height\", this, \"default-height\", DEFAULT);\n\n            indicator = new Indicator ();\n            indicator.active = ui.get_boolean (\"show-indicator\");\n            update_indicator_status ();\n\n            // Create controller to capture Delete key presses in the search entry\n            // and activate row delete action when there is no actual text to delete\n            var key_controller = new Gtk.EventControllerKey ();\n            key_controller.propagation_phase = Gtk.PropagationPhase.CAPTURE;\n            key_controller.key_pressed.connect ((keyval, keycode, state) => {\n                if (keyval == Gdk.Key.Delete) {\n                    if (search_entry.cursor_position == search_entry.text.length) {\n                        network_list.on_delete_row ();\n                        // Stop propagation\n                        return true;\n                    }\n                }\n                // Continue propagation\n                return false;\n            });\n\n            search_entry.add_controller (key_controller);\n            search_entry.search_changed.connect (() => {\n                network_list.autoselect (search_entry.text.length > 0);\n                network_list.refilter ();\n            });\n            search_entry.activate.connect (() => {\n                network_list.on_activate ();\n            });\n\n            hide.connect (() => {\n                session.visibility_changed (false);\n                update_indicator_status ();\n            });\n            show.connect (() => {\n                session.visibility_changed (true);\n                update_indicator_status ();\n            });\n        }\n\n        construct {\n            install_action (\"win.connect\",               null, (Gtk.WidgetActionActivateFunc) connect_action);\n            install_action (\"win.disconnect\",            null, (Gtk.WidgetActionActivateFunc) disconnect_action);\n            install_action (\"win.join-network\",          null, (Gtk.WidgetActionActivateFunc) join_network_action);\n            install_action (\"win.create-network\",        null, (Gtk.WidgetActionActivateFunc) create_network_action);\n            install_action (\"win.attach\",                null, (Gtk.WidgetActionActivateFunc) attach_action);\n            install_action (\"win.attach-cancel\",         null, (Gtk.WidgetActionActivateFunc) attach_cancel_action);\n            install_action (\"win.start-search\",          null, (Gtk.WidgetActionActivateFunc) start_search_action);\n            install_action (\"win.refresh\",               null, (Gtk.WidgetActionActivateFunc) refresh_action);\n            install_action (\"win.toggle-sidebar\",        null, (Gtk.WidgetActionActivateFunc) toggle_sidebar_action);\n            install_action (\"win.cycle-mode\",            null, (Gtk.WidgetActionActivateFunc) cycle_mode_action);\n            install_action (\"win.expand-all-networks\",   null, (Gtk.WidgetActionActivateFunc) expand_all_networks_action);\n            install_action (\"win.collapse-all-networks\", null, (Gtk.WidgetActionActivateFunc) collapse_all_networks_action);\n            install_action (\"win.preferences\",           null, (Gtk.WidgetActionActivateFunc) preferences_action);\n            install_action (\"win.shortcuts\",             null, (Gtk.WidgetActionActivateFunc) shortcuts_action);\n            install_action (\"win.help\",                  null, (Gtk.WidgetActionActivateFunc) help_action);\n            install_action (\"win.info\",                  null, (Gtk.WidgetActionActivateFunc) info_action);\n            install_action (\"win.about\",                 null, (Gtk.WidgetActionActivateFunc) about_action);\n            install_action (\"win.quit\",                  null, (Gtk.WidgetActionActivateFunc) quit_action);\n        }\n\n#if FOR_ELEMENTARY\n        private void load_stylesheet () {\n            if (provider == null) {\n                provider = new Gtk.CssProvider ();\n            }\n            provider.load_from_resource (\"/com/github/ztefn/haguichi/elementary%s.css\".printf (Adw.StyleManager.get_default ().dark ? \"-dark\" : \"\"));\n            Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);\n        }\n#endif\n\n        [GtkCallback]\n        private void download_hamachi () {\n            Command.open_redirect_uri (\"get-hamachi\");\n        }\n\n        [GtkCallback]\n        private void configure_hamachi () {\n            window_title.subtitle = _(\"Configuring\");\n            configure_button.sensitive = false;\n            action_set_enabled (\"win.refresh\", false);\n            if (!demo_mode) {\n                Hamachi.configure ();\n            }\n        }\n\n        [GtkCallback]\n        private void cancel_restore () {\n            Controller.restore = false;\n            Controller.connection_stopped ();\n            network_list.clear_state ();\n        }\n\n        [GtkCallback]\n        private void go_back_button_clicked () {\n            split_view.show_sidebar = false;\n        }\n\n        private void connect_action () {\n            Controller.start_hamachi ();\n        }\n\n        private void disconnect_action () {\n            Controller.stop_hamachi ();\n        }\n\n        private void join_network_action () {\n            add_network_action (\"Join\");\n        }\n\n        private void create_network_action () {\n            add_network_action (\"Create\");\n        }\n\n        private void add_network_action (string mode) {\n            var add_network = new JoinCreateNetworkDialog (mode);\n            show_dialog (add_network);\n        }\n\n        private void attach_action () {\n            var attach = new AttachDialog ();\n            show_dialog (attach);\n        }\n\n        private void attach_cancel_action () {\n            new Thread<void*> (null, () => {\n                Hamachi.cancel ();\n                return null;\n            });\n\n            sidebar.set_account (\"-\");\n        }\n\n        private void start_search_action () {\n            search_bar.search_mode_enabled = true;\n            search_entry.grab_focus ();\n        }\n\n        private void refresh_action () {\n            if (Controller.last_status <= 1) {\n                Controller.init ();\n            } else if (Controller.last_status >= 6) {\n                Controller.update_connection ();\n            }\n        }\n\n        private void toggle_sidebar_action () {\n            if (split_view.collapsed == false) return;\n\n            toggle_sidebar ();\n        }\n\n        private void cycle_mode_action () {\n            if (!demo_mode) return;\n\n            var cur_mode = get_mode ();\n            var new_mode = \"\";\n            switch (cur_mode) {\n                case \"Initializing\":\n                    new_mode = \"Disconnected\";\n                    break;\n                case \"Disconnected\":\n                    new_mode = \"Connecting\";\n                    break;\n                case \"Connecting\":\n                    new_mode = \"Connected\";\n                    break;\n                case \"Connected\":\n                    new_mode = \"Not installed\";\n                    break;\n                case \"Not installed\":\n                    new_mode = \"Not configured\";\n                    break;\n                case \"Not configured\":\n                    new_mode = \"Initializing\";\n                    break;\n            }\n\n            debug (\"new mode: %s\", new_mode);\n            set_mode (new_mode);\n        }\n\n        private void expand_all_networks_action () {\n            network_list.set_all_rows_expanded (true);\n        }\n\n        private void collapse_all_networks_action () {\n            network_list.set_all_rows_expanded (false);\n        }\n\n        private void preferences_action () {\n            var prefs = new Preferences () {\n                search_enabled = true\n            };\n            show_dialog (prefs);\n        }\n\n        private void shortcuts_action () {\n#if ADW_1_8\n            var builder = new Gtk.Builder.from_resource (\"/com/github/ztefn/haguichi/ui/shortcuts-dialog.ui\");\n            var shortcuts = (Adw.ShortcutsDialog) builder.get_object (\"shortcuts\");\n#else\n            var builder = new Gtk.Builder.from_resource (\"/com/github/ztefn/haguichi/ui/shortcuts-window.ui\");\n            var shortcuts = (Gtk.ShortcutsWindow) builder.get_object (\"shortcuts\");\n#endif\n#if FOR_ELEMENTARY\n            // Find the search button so that we can fix its appearance\n            var toggle_button = (Gtk.Widget) shortcuts\n                .get_first_child () // GtkBox\n                .get_next_sibling () // GtkHeaderBar\n                    .get_first_child () // GtkWindowHandle\n                        .get_first_child () // GtkCenterBox\n                            .get_first_child () // GtkBox\n                                .get_first_child () // GtkWindowControls\n                                .get_next_sibling (); // GtkToggleButton\n\n            // If the search button was found then change the vertical alignment\n            if (toggle_button is Gtk.ToggleButton) {\n                ((Gtk.ToggleButton) toggle_button).valign = Gtk.Align.CENTER;\n            }\n#endif\n            show_dialog (shortcuts);\n        }\n\n        private void help_action () {\n            Command.open_redirect_uri (\"help\");\n        }\n\n        private void info_action () {\n            show_info ();\n        }\n\n        private void about_action () {\n            var developer_name = \"Stephen Brandt\";\n            var about = new Adw.AboutDialog () {\n                application_name    = APP_NAME,\n                application_icon    = APP_ID,\n                copyright           = \"© 2007-2026 %s\".printf (developer_name),\n                debug_info_filename = \"haguichi-debug-info_%s.txt\".printf (new DateTime.now_local ().format (\"%Y-%m-%dT%H:%M\")),\n                developer_name      = developer_name,\n                issue_url           = \"https://github.com/ztefn/haguichi/issues\",\n                license_type        = Gtk.License.GPL_3_0,\n                // Translator credits. Put one translator per line, in the form of \"NAME URL\".\n                translator_credits  = _(\"translator-credits\"),\n                version             = VERSION,\n                website             = \"https://haguichi.net\",\n                // Lower minimum width request to match window\n                width_request       = width_request\n            };\n#if FOR_UBUNTU\n            if (Utils.get_icon_theme ().theme_name.has_prefix (\"Yaru\")) {\n                about.artists = {\n                    \"Sam Hewitt https://github.com/snwh\",\n                    \"Stuart Jaggers https://github.com/ubuntujaggers\"\n                };\n            }\n#endif\n            show_dialog (about);\n\n            // Get debug information in a separate thread\n            new Thread<void*> (null, () => {\n                about.debug_info = Utils.get_debug_info ();\n                return null;\n            });\n        }\n\n        private void quit_action () {\n            Controller.quit ();\n\n            if (modal_dialog != null) {\n                modal_dialog.destroy ();\n            }\n\n            hide ();\n\n            connection.save_long_nicks ();\n            session.quitted ();\n\n            debug (\"quit_action: Bye!\");\n            app.quit ();\n        }\n\n        public void trigger_action (string action_name) {\n            activate_action_variant (\"win.\" + action_name, null);\n        }\n\n        public void show_dialog (Gtk.Widget widget) {\n            if (modal_dialog != null) return;\n\n            if (widget is Gtk.Window) {\n                var dialog = (Gtk.Window) widget;\n                dialog.transient_for = this;\n                dialog.modal = true;\n                dialog.close_request.connect (() => {\n                    set_modal_dialog (null);\n                    return false;\n                });\n                dialog.present ();\n\n                set_modal_dialog (dialog);\n            }\n            else if (widget is Adw.Dialog) {\n                var dialog = (Adw.Dialog) widget;\n                dialog.closed.connect (() => {\n                    set_modal_dialog (null);\n                });\n                dialog.present (this);\n\n                set_modal_dialog (dialog);\n            }\n        }\n\n        private void set_modal_dialog (Gtk.Widget? dialog) {\n            modal_dialog = dialog;\n            session.modality_changed (dialog == null ? false : true);\n            update_indicator_status ();\n        }\n\n        public void show_toast (string title, uint timeout = 5) {\n            toast_overlay.add_toast (new Adw.Toast (title) {\n                timeout    = timeout,\n                use_markup = false\n            });\n        }\n\n        public void show_copied_to_clipboard_toast () {\n            show_toast (_(\"Copied to clipboard\"), 2);\n        }\n\n        public void show_info () {\n            network_list.unselect ();\n            split_view.show_sidebar = true;\n        }\n\n        public void toggle_sidebar () {\n            split_view.show_sidebar = !split_view.show_sidebar;\n        }\n\n        public void show_sidebar () {\n            split_view.show_sidebar = (default_width > 520);\n            split_view.pin_sidebar = false;\n        }\n\n        public void hide_sidebar () {\n            split_view.show_sidebar = false;\n            split_view.pin_sidebar = true;\n        }\n\n        public void set_nick (string nick) {\n            window_title.title = (nick == \"\") ? _(\"Anonymous\") : nick;\n        }\n\n        public void set_connected_stack_page (string page) {\n            connected_stack.visible_child_name = page;\n        }\n\n        public void set_disconnected_stack_page (string page) {\n            disconnected_stack.visible_child_name = page;\n        }\n\n        public void set_restore_countdown (int countdown) {\n            restore_status_page.description = ngettext (\"Reconnecting in {0} second\",\n                                                        \"Reconnecting in {0} seconds\",\n                                                        countdown).replace (\"{0}\", countdown.to_string ());\n        }\n\n        public string get_mode () {\n            return stack.visible_child_name;\n        }\n\n        public void set_mode (string mode) {\n            session.mode_changed (mode);\n\n            stack.visible_child_name = mode;\n\n            bool is_configured = mode.down ().contains (\"connect\");\n\n            action_set_enabled (\"win.connect\",              mode == \"Disconnected\");\n            action_set_enabled (\"win.disconnect\",           mode == \"Connected\");\n            action_set_enabled (\"win.join-network\",         mode == \"Connected\");\n            action_set_enabled (\"win.create-network\",       mode == \"Connected\");\n            action_set_enabled (\"win.start-search\",         mode == \"Connected\");\n            action_set_enabled (\"win.refresh\",              true);\n            action_set_enabled (\"win.toggle-sidebar\",       is_configured);\n            action_set_enabled (\"win.info\",                 is_configured);\n            action_set_enabled (\"win.sort-by\",              is_configured);\n            action_set_enabled (\"win.show-offline-members\", is_configured);\n\n            refresh_button.visible = (mode == \"Not installed\" || mode == \"Not configured\");\n\n            if (mode == \"Not installed\") {\n                if (demo_mode || Hamachi.version == \"\") {\n                    not_installed_status_page.title = _(\"Hamachi Is Not Installed\");\n                } else {\n                    not_installed_status_page.title = _(\"Hamachi Version %s Is Obsolete\").printf (Hamachi.version);\n                }\n            }\n\n            connect_button.visible = (mode == \"Disconnected\");\n            disconnect_button.visible = (mode == \"Connecting\" || mode == \"Connected\");\n\n            search_button.visible = is_configured;\n            search_button.sensitive = (mode == \"Connected\");\n            search_bar.sensitive = (mode == \"Connected\");\n            if (mode != \"Connected\") {\n                search_bar.search_mode_enabled = false;\n            }\n\n            if (is_configured) {\n                sidebar.attach_button.sensitive = (mode == \"Connected\");\n                sidebar.cancel_button.sensitive = (mode == \"Connected\");\n                show_sidebar ();\n            } else {\n                hide_sidebar ();\n            }\n\n            throbber.spinning = (mode == \"Connecting\");\n\n            configure_button.sensitive = (mode == \"Not configured\" && Hamachi.service != \"\");\n\n            overlay_refresh_button.visible = (mode == \"Connected\");\n            overlay_add_network_button.visible = (mode == \"Connected\");\n\n            if (mode == \"Initializing\") {\n                window_title.subtitle = _(\"Initializing\");\n            } else if (mode == \"Connecting\") {\n                window_title.subtitle = _(\"Connecting\");\n            } else if (mode == \"Connected\") {\n                window_title.subtitle = _(\"Connected\");\n            } else {\n                window_title.subtitle = _(\"Disconnected\");\n                sidebar.show_page (\"Information\");\n            }\n\n            // Only sandboxed applications can set background status\n            if (Xdp.Portal.running_under_flatpak ()) {\n                set_background_status.begin ();\n            }\n\n            update_indicator_status ();\n        }\n\n        public async void set_background_status () {\n            try {\n                bool success = yield portal.set_background_status (window_title.subtitle, null);\n                if (!success) {\n                    warning (\"set_background_status: Updating background status failed\");\n                }\n            } catch (Error e) {\n                critical (\"set_background_status: %s\", e.message);\n            }\n        }\n\n        public void update_indicator_status () {\n            if (indicator != null) {\n                indicator.update_status (get_mode (), modal_dialog != null, visible);\n            }\n        }\n\n        public override void hide () {\n            if (modal_dialog == null) {\n                base.hide ();\n            }\n        }\n\n        public override bool close_request () {\n            // If connecting or connected request to run in background\n            var mode = get_mode ();\n            if (mode == \"Connecting\" || mode == \"Connected\") {\n                request_background.begin ((obj, res) => {\n                    if (request_background.end (res)) {\n                        hide ();\n                    } else {\n                        destroy ();\n                    }\n                });\n            } else {\n                destroy ();\n            }\n\n            return true;\n        }\n\n        public async bool request_background () {\n            var parent = Xdp.parent_new_gtk (this);\n\n            var command = new GenericArray<weak string> ();\n            command.add (APP_ID);\n            command.add (\"--background\");\n\n            try {\n                return yield portal.request_background (\n                    parent,\n                    _(\"Haguichi will continue to run when its window is closed so that it can monitor the connection and send notifications.\"),\n                    command,\n                    Xdp.BackgroundFlags.NONE,\n                    null\n                );\n            } catch (Error e) {\n                critical (\"request_background: %s\", e.message);\n                // If background portal is not available then return true to hide window\n                return true;\n            }\n        }\n    }\n}\n"
  }
]